mystery refcount problem with -ssaiv
|
|
Bugzilla Link |
472 |
Created on |
Feb 02, 2009 23:38 |
Resolution |
FIXED |
Resolved on |
Feb 03, 2009 16:13 |
Version |
1.00beta |
OS |
Linux |
Architecture |
PC |
Attachments |
bugxxx.sac |
Extended Description
Created an attachment (id=500)
source code to reproduce failure
If I compile the attached this way with build #15987:
sac2c -noprelude -ssaiv bugxxx.sac
I get a segfault at run time. If I compile it without
-ssaiv, it works fine. The interesting thing is that a break
at -b11 and -b12 show only minor differences between
the resulting codes, and they look to be just variable name
differences.
However, a break at -b14 shows that there are some
slight differences in reference counts in the generated code, such as
this:
153,154c154,156
< _emal_522__isaa_387__rso_16_TheWorld = _alloc_( 1, 0, [:int]);
< _isaa_387__rso_16_TheWorld = _fill_( 0, _emal_522__isaa_387__rso_16_TheWorld);
---
> _inc_rc_( _wlidx_513_z, 1);
> _emal_530__isaa_395__rso_16_TheWorld = _alloc_( 1, 0, [:int]);
> _isaa_395__rso_16_TheWorld = _fill_( 0, _emal_530__isaa_395__rso_16_TheWorld);
This sort of problem would explain the segfault.
I am guessing that the -bxx code fails to include ALL
semantic information about the program under compilation,
and that is why there is no visible difference between the two
codes with -bxx.
Perhaps it should include that information!