diff options
author | Adrian Prantl <aprantl@apple.com> | 2015-02-03 18:40:42 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2015-02-03 18:40:42 +0000 |
commit | 39428e74a04d93a6732a850c215f359a122cfff1 (patch) | |
tree | 237da63566e87603c682e084a7c6c56feb48c730 /clang/lib/CodeGen/CGException.cpp | |
parent | 6693d0839af5ae38d7a09bfada7af7a24611d884 (diff) | |
download | bcm5719-llvm-39428e74a04d93a6732a850c215f359a122cfff1.tar.gz bcm5719-llvm-39428e74a04d93a6732a850c215f359a122cfff1.zip |
Merge ArtificialLocation into ApplyDebugLocation and make a clear
distinction between the different use-cases. With the previous default
behavior we would occasionally emit empty debug locations in situations
where they actually were strictly required (= on invoke insns).
We now have a choice between defaulting to an empty location or an
artificial location.
Specifically, this fixes a bug caused by a missing debug location when
emitting C++ EH cleanup blocks from within an artificial function, such as
an ObjC destroy helper function.
rdar://problem/19670595
llvm-svn: 228003
Diffstat (limited to 'clang/lib/CodeGen/CGException.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGException.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGException.cpp b/clang/lib/CodeGen/CGException.cpp index 9f886ebb13a..406afb2739d 100644 --- a/clang/lib/CodeGen/CGException.cpp +++ b/clang/lib/CodeGen/CGException.cpp @@ -770,7 +770,7 @@ llvm::BasicBlock *CodeGenFunction::EmitLandingPad() { // Save the current IR generation state. CGBuilderTy::InsertPoint savedIP = Builder.saveAndClearIP(); - ApplyDebugLocation AutoRestoreLocation(*this, CurEHLocation); + ApplyDebugLocation AL(*this, ApplyDebugLocation::Artificial, CurEHLocation); const EHPersonality &personality = EHPersonality::get(CGM); |