summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGException.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2015-02-03 18:40:42 +0000
committerAdrian Prantl <aprantl@apple.com>2015-02-03 18:40:42 +0000
commit39428e74a04d93a6732a850c215f359a122cfff1 (patch)
tree237da63566e87603c682e084a7c6c56feb48c730 /clang/lib/CodeGen/CGException.cpp
parent6693d0839af5ae38d7a09bfada7af7a24611d884 (diff)
downloadbcm5719-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.cpp2
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);
OpenPOWER on IntegriCloud