Corrupt tree after wrongly striping out variables of type bottom
Bugzilla Link | 831 |
Created on | Mar 08, 2011 14:14 |
Resolution | FIXED |
Resolved on | Oct 11, 2011 09:29 |
Version | svn |
OS | All |
Architecture | PC |
Attachments | 831.sac |
Extended Description
This failure can be seen in axis_control_rev_cat.sac. See any recent Masterrun. The following summary is from Stephan and lazily pasted from an email: I have looked at axis_control_rev_cat.sac. The problem there seems to be with the type checker. We end up in a situation where after opt:tup2 [type upgrade] return values of main become bottom, however the return type of main does not. Thus, compilation is not aborted. Instead, all bottom variables are stripped out, including the return value. This leads to a corrupted tree. On the one hand, one should never just strip away a vardec node without checking its use. On the other hand, if a bottom vardec node would contribute directly to the result of a function, then that entire function should have been marked as bottom.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information