This is an archive of the discontinued LLVM Phabricator instance.

Changes for Bug 25251
ClosedPublic

Authored by ravitheja on Oct 30 2015, 7:41 AM.

Details

Summary

The solution to bug 24074,rL249673 needed
to parse the function information from the Dwarf in order
to set the SymbolContext. For that, GetFunction was called
for the parent in GetTypeForDIE, which parses the
ChildParameters and in the flow, GetTypeForDIE was called
for one of the sibling die and so an infinite
loop was triggered by calling GetFunction repeatedly for the
same function.

The changes in this revision modify the GetTypeForDIE to only
resolve the function context in the Type Lookup flow and so
prevent the infinite loop.

A testcase has also been added to check for regression in the
future and a test vector had been added to the testcase of
24074.

Diff Detail

Event Timeline

ravitheja updated this revision to Diff 38809.Oct 30 2015, 7:41 AM
ravitheja retitled this revision from to Changes for Bug 25251.
ravitheja updated this object.
clayborg accepted this revision.Nov 2 2015, 10:55 AM
clayborg edited edge metadata.
This revision is now accepted and ready to land.Nov 2 2015, 10:55 AM
tberghammer accepted this revision.Nov 2 2015, 11:35 AM
tberghammer edited edge metadata.

Looks good, but it would be nice if you can create a smaller test case based on your understanding of the bug

Hi Tamas,

I did spend sometime to reproduce the error with a simpler testcase but i was unsuccessful.
ravitheja updated this revision to Diff 39055.Nov 3 2015, 6:25 AM
ravitheja edited edge metadata.

Changes for new testsuite format.

ravitheja closed this revision.Nov 3 2015, 6:26 AM