Could a gatekeeper please review this patch?
https://bugs.open64.net/show_bug.cgi?id=752
The assertion happens when finding node point to a collapsed node. Collapsed
node is supposed to be not used in constraint graph analysis and points to.

Follow the attached test case in bug report.
In foo
<x, 24> collapse into <x, 8>, because the pointer (p+val) may point to these
two nodes
In bar
<x, 8> collapse into <x, 0>
In bar2,
P points to <x, 24>

During IPA setup,
After processing foo
<x, 24>’s collapse parent is <x, 8>
After processing foo
<x, 8>’s collapse parent is <x, 0>
<x, 24>’s collapse parent is still <x, 8>
When processing points to in bar2.
P points to <x,24>’s collapse parent which is <x, 8>.
It assert in point_to sanity check, because <x, 8> is still a collapsed
node.

Fix is in ConstraintGraph::buildCGipa, when adding points_to to a collapsed
node, search collapsed parent chain instead of only search one level
collpase parent.

There are other place also search the collapsed parent chain, can merge
these code into a small function later.

Attachment: bug752.patch
Description: Binary data

------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to