In the original design of the analyzer, it is assumed that the BlockEntrance doesn't create a new binding on the Store, But this assumption isn't true when 'widen-loops' sets true.
Regards,
Henry Wong
Differential D37187
[Analyzer] Fix Bug 25609 - Assertion UNREACHABLE: 'Unexpected ProgramPoint' with widen-loops=true MTC on Aug 26 2017, 8:42 PM. Authored by
Details
In the original design of the analyzer, it is assumed that the BlockEntrance doesn't create a new binding on the Store, But this assumption isn't true when 'widen-loops' sets true. Regards, Henry Wong
Diff Detail
Event TimelineThis comment was removed by MTC.
Comment Actions Hello MTC, Thanks for working on this! I planned to add a change like this in D36690 but it worths an individual patch (did not know it was a reported bug).
Comment Actions Hi peter, Thank you very much for your help.
Yes, that's the problem. The information displayed to the user should be clear, but not difficult to understand.
I'll update the test file,:D.
About ‘git diff’, that's my mistake, and I'll add this option next time. Thank you very much for pointing it out!
Comment Actions (1) Modify the description of the bug report
Comment Actions Thanks for the update!
Comment Actions The message about invalidate variable values is temporarily not printed. This work can be done with separate patch. Comment Actions ping?
Comment Actions Update diff, use the SourceLocation of the first element of the entered block as the argument of PathDiagnosticLocation.
Comment Actions 1.Use the getAs<> in the if condition. Comment Actions LGTM, but as noted inline you should update the new llvm_unreachable() to have a more descriptive error message. Do you have commit access or do you need someone to commit this for you?
Comment Actions Update the llvm_unreachable's description of the BlockEntrance-branch from "Unexpected ProgramPoint" to "Unexpected CFG element at front of block". Comment Actions Hi dcoughlin, Thank you very much for your help. I have no commit access and hope someone can commit it on my behalf. Thanks a lot! |