PM followId tries to follow predicate results past guards
|
|
Bugzilla Link |
728 |
Created on |
Jun 22, 2010 18:34 |
Resolution |
FIXED |
Resolved on |
Jun 22, 2010 20:03 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Attachments |
SCCFprf_reshape.sac |
Extended Description
Created an attachment (id=737)
source code to reproduce fault
This code fault is similar in spirit to Bug #727:
In SCCFprf_reshape.sac, we eventually find this IL:
_uprf_116, _uprf_117 = _val_lt_val_SxS_( _uprf_113, _uprf_115);
_uprf_118 = _and_SxS_( _uprf_111, _uprf_117);
CF (MatchConstantZero) comes along and tries to trace, via PM, _uprf_117
back to a constant, merrily skipping any guards it meets along
the way. Unfortunately, PM should only skip a guard if the variable
it is tracing is one of the primary results of the primitive, and
should never attempt to trace the resulting predicates, which this is.
I'll get on it right away.