Euphoria
Ticket #667:
Invalid else statement
-
Reported by
SDPringle
May 21, 2011
The 4.1 version I am translating is: 80987b5bd57d.
Here the condition is a dll_option and length() in buildsys.e.
if dll_option and length( user_pic_library ) then
user_library = user_pic_library
end if
The code generated is:
/** buildsys.e:329 if dll_option and length( user_pic_library ) then*/
if (_57dll_option_41521 == 0) {
goto L1; // [49] 72
}
_23404 = 0;
{
_23404 = NOVALUE;
goto L1; // [59] 72
}
else
{
_23404 = NOVALUE;
}
/** buildsys.e:330 user_library = user_pic_library*/
RefDS(_57user_pic_library_41534);
DeRef(_57user_library_41533);
_57user_library_41533 = _57user_pic_library_41534;
Notice here _57user_pic_library41534 is not referenced for its length.
Details
1. Comment by mattlewis
May 21, 2011
Yes, I know how to fix this, but haven't gotten to it yet. The issue also exists in 4.0.2.
2. Comment by mattlewis
May 22, 2011
See: hg:euphoria/rev/0df5a370c5b5
changeset: 4920:0df5a370c5b5 branch: 4.0 user: Matt Lewis date: Sun May 22 07:01:19 2011 -0400 files: docs/release/4.0.3.txt description:
- release notes for ticket 667
3. Comment by mattlewis
May 22, 2011
See: hg:euphoria/rev/f5fbe52eb6ac
changeset: 4921:f5fbe52eb6ac tag: tip parent: 4914:80987b5bd57d parent: 4920:0df5a370c5b5 user: Matt Lewis date: Sun May 22 07:25:13 2011 -0400 files: source/be_socket.c source/compile.e tests/t_socket.e description:
- merge 4.0 changes into the trunk
- fixes ticket 667