APEX unit test UTCompress dies in EBTfundef due to N_ret woes, when compiled with -ecc
|
|
Bugzilla Link |
893 |
Created on |
Dec 21, 2011 21:19 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Extended Description
This code dies early in OPT when compiled with -ecc:
use Array:{++,genarray};
int main()
{
z = genarray([2,3]++[0],0);
StdIO::print(z);
return(0);
}
apex@rattler:~/apex2003/benchmks/UTCompress$ sac2c crud.sac -ecc -v4
**** Optimization cycle pass: 3
****** Optimizing regular function:
****** _MAIN::main( hidden(1), hidden(2), hidden(0)): ...
Applying common subexpression elimination ...
Inferring loop invariant variables ...
Applying type upgrade ...
Eliminating Type Variables ...
Eliminating Bottom Types ...
*** Compilation failed ***
*** Exit code 89 (Running SAC optimizations)
*** 1 Error(s), 0 Warning(s)
sac2c -V
sac2c v1.00-beta (Haggis And Apple)
developer rev 17714:MODIFIED linux-gnu_x86_64
(Tue Dec 20 16:34:06 EST 2011 by sac)
The non-obvious failure happens in EBTfundef, here:
ftype = TUmakeProductTypeFromRets( FUNDEF_RETS( arg_node));
bottom = TYgetBottom( ftype);
if( bottom != NULL) {
... {abort}