summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2015-01-13 23:06:27 +0000
committerDavid Blaikie <dblaikie@gmail.com>2015-01-13 23:06:27 +0000
commit1ae04916cca78d8a7f024c3069122be46efda111 (patch)
tree3051e60d303d5ded6b9bcd6ec4ff0e25293403cb /llvm/lib/CodeGen/AsmPrinter
parentfb77f00be8dd87082b4e0f8baf7a11dcbede5c33 (diff)
downloadbcm5719-llvm-1ae04916cca78d8a7f024c3069122be46efda111.tar.gz
bcm5719-llvm-1ae04916cca78d8a7f024c3069122be46efda111.zip
DebugInfo: Correct the location of EH cleanup for blocks
This was previously piggybacking on whatever happened to be the last location set on CGDebugInfo/DIBuilder, which was wrong (it was often the current location, such as the 'fn()' call site, not the end of the block). With my improvements to set/unset the location in a scoped manner (r225000) this went from a bad quality situation, to a crash. Fixing this goes part-way to unblocking the recommit of r225000. It's likely that any call to CodeGenFunction::StartFunction without the CurEHLocation set represents a similar bug or risk of a bug. Perhaps there are some callers that know they won't generate EH cleanups, but I'm not sure. I considered a generic catch-fix in StartFunction (just fallback to the GlobalDecl's location) but that seemed like it'd mask bugs where the EH location shouldn't be the same as the decl's location (& indeed by not using that stop-gap I found this bug). We'll see how long I can hold out on the generic catch-all. I might eventually be able to add an assertion in. llvm-svn: 225845
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud