WLPartitionGenerator generates overlapping partitions
|
|
Bugzilla Link |
676 |
Created on |
Feb 04, 2010 19:48 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Attachments |
bugx.sac |
Extended Description
Created an attachment (id=667)
source code to reproduce fault
If I compile the attached with Build #16757, this way:
sac2c bugx.sac -b11:uglf >crud
I get this for main():
_flat_1 = 25;
_flat_0 = _MAIN::id( _flat_1);
_isaa_264__flat_0 = 0;
_isaa_265__flat_0 = [:int];
_isaa_266__flat_0 = _saabind_( _isaa_264__flat_0, _isaa_265__flat_0, _flat_0);
_pinl_135__flat_5 = [ _isaa_266__flat_0 ];
_pinl_138__flat_2 = [ 0 ];
AAA = with {
(_pinl_138__flat_2 <= _pinl_141__flat_6=[_pinl_142_i] < _pinl_135__flat_5 genwidth [ _isaa_266__flat_0 ])
{
/* empty */
} : _pinl_142_i ;
} :
genarray( _pinl_135__flat_5, _isaa_264__flat_0);
_flat_2 = 5;
_pinl_214_ub_i = _max_SxS_( _isaa_264__flat_0, _isaa_266__flat_0);
_pinl_179__wlbsc_125_sc_bound = [ _pinl_214_ub_i ];
_wlsimp_231 = _sub_SxS_( _isaa_266__flat_0, _pinl_214_ub_i);
_pinl_165_zPLUS = with {
(_pinl_179__wlbsc_125_sc_bound <= _pinl_162_iv=[_pinl_166__eat_11] < _pinl_135__flat_5 genwidth [ _wlsimp_231 ])
{
_pinl_226__flat_147 = _sel_VxA_( _pinl_162_iv, AAA);
} : _pinl_226__flat_147 ; ,
(_pinl_138__flat_2 <= _pinl_162_iv=[_pinl_166__eat_11] < _pinl_135__flat_5 genwidth [ _isaa_266__flat_0 ])
{
_pinl_200__flat_95 = _sel_VxA_( _pinl_162_iv, AAA);
_pinl_189__flat_213 = _add_SxS_( _pinl_200__flat_95, _flat_2);
} : _pinl_189__flat_213 ;
} :
modarray( AAA);
z = _sel_VxA_( _pinl_138__flat_2, _pinl_165_zPLUS);
_esd_236 = -5;
_pinl_204__flat_212 = _add_SxS_( z, _esd_236);
return( _pinl_204__flat_212);
}
Note that the _pinl_165_zPLUS Wl has duplicate GENERATOR_BOUND2 values.
Note also that the max() computation of _pinl_214_ub_i is not
reducible. This screws AWLF.