]> granicus.if.org Git - clang/commit
Merge ArtificialLocation into ApplyDebugLocation and make a clear
authorAdrian Prantl <aprantl@apple.com>
Tue, 3 Feb 2015 18:40:42 +0000 (18:40 +0000)
committerAdrian Prantl <aprantl@apple.com>
Tue, 3 Feb 2015 18:40:42 +0000 (18:40 +0000)
commit3ed5b8f439117dcec2fd6bb4ec5bebf0923c4536
tree541e7fecdb73baf33df1de4ceeaf58415dfabffa
parente9be09a2877bddf51509d96f7fc44df084d1c705
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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@228003 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGBlocks.cpp
lib/CodeGen/CGCleanup.cpp
lib/CodeGen/CGDebugInfo.cpp
lib/CodeGen/CGDebugInfo.h
lib/CodeGen/CGDecl.cpp
lib/CodeGen/CGDeclCXX.cpp
lib/CodeGen/CGException.cpp
lib/CodeGen/CGExprScalar.cpp
lib/CodeGen/CGStmt.cpp
lib/CodeGen/CGStmtOpenMP.cpp
test/CodeGenObjCXX/nested-ehlocation.mm [new file with mode: 0644]