forked from OSchip/llvm-project
Revert "[CGBlocks] Improve line info in backtraces containing *_helper_block"
Block copy/destroy helpers are now linkonce_odr functions, meant to be uniqued, and thus attaching debug information from one translation unit (or even just from one instance of many inside one translation unit) would be misleading and wrong in the general case.
This effectively reverts commit 9c6b6826ce
.
<rdar://problem/59137040>
Differential Revision: https://reviews.llvm.org/D75615
This commit is contained in:
parent
76b9901fb1
commit
314b9278f0
|
@ -2032,11 +2032,13 @@ CodeGenFunction::GenerateCopyHelperFunction(const CGBlockInfo &blockInfo) {
|
|||
FunctionDecl *FD = FunctionDecl::Create(
|
||||
C, C.getTranslationUnitDecl(), SourceLocation(), SourceLocation(), II,
|
||||
FunctionTy, nullptr, SC_Static, false, false);
|
||||
|
||||
setBlockHelperAttributesVisibility(blockInfo.CapturesNonExternalType, Fn, FI,
|
||||
CGM);
|
||||
// This is necessary to avoid inheriting the previous line number.
|
||||
FD->setImplicit();
|
||||
StartFunction(FD, ReturnTy, Fn, FI, args);
|
||||
ApplyDebugLocation NL{*this, blockInfo.getBlockExpr()->getBeginLoc()};
|
||||
auto AL = ApplyDebugLocation::CreateArtificial(*this);
|
||||
|
||||
llvm::Type *structPtrTy = blockInfo.StructureType->getPointerTo();
|
||||
|
||||
Address src = GetAddrOfLocalVar(&SrcDecl);
|
||||
|
@ -2227,10 +2229,12 @@ CodeGenFunction::GenerateDestroyHelperFunction(const CGBlockInfo &blockInfo) {
|
|||
|
||||
setBlockHelperAttributesVisibility(blockInfo.CapturesNonExternalType, Fn, FI,
|
||||
CGM);
|
||||
// This is necessary to avoid inheriting the previous line number.
|
||||
FD->setImplicit();
|
||||
StartFunction(FD, ReturnTy, Fn, FI, args);
|
||||
markAsIgnoreThreadCheckingAtRuntime(Fn);
|
||||
|
||||
ApplyDebugLocation NL{*this, blockInfo.getBlockExpr()->getBeginLoc()};
|
||||
auto AL = ApplyDebugLocation::CreateArtificial(*this);
|
||||
|
||||
llvm::Type *structPtrTy = blockInfo.StructureType->getPointerTo();
|
||||
|
||||
|
|
|
@ -17,13 +17,17 @@
|
|||
// CHECK-NOT: ret
|
||||
// CHECK: call {{.*}}, !dbg ![[DBG_LINE:[0-9]+]]
|
||||
// CHECK-NOT: ret
|
||||
// CHECK: load {{.*}}, !dbg ![[COPY_LINE:[0-9]+]]
|
||||
// CHECK: ret void, !dbg ![[COPY_LINE]]
|
||||
// CHECK: define {{.*}} @__destroy_helper_block_{{.*}}(i8* %0)
|
||||
// CHECK: load {{.*}}, !dbg ![[DBG_LINE]]
|
||||
// CHECK: ret {{.*}}, !dbg ![[DBG_LINE]]
|
||||
// CHECK: define {{.*}} @__destroy_helper_block_{{.*}}(i8*
|
||||
// CHECK-NOT: ret
|
||||
// CHECK: load {{.*}}, !dbg ![[DESTROY_LINE:[0-9]+]]
|
||||
// CHECK: ret void, !dbg ![[DESTROY_LINE]]
|
||||
// CHECK: ret {{.*}}, !dbg ![[DESTROY_LINE]]
|
||||
|
||||
// CHECK-DAG: [[DBG_LINE]] = !DILocation(line: 0, scope: ![[COPY_SP:[0-9]+]])
|
||||
// CHECK-DAG: [[COPY_SP]] = distinct !DISubprogram(name: "__copy_helper_block_
|
||||
// CHECK-DAG: [[DESTROY_LINE]] = !DILocation(line: 0, scope: ![[DESTROY_SP:[0-9]+]])
|
||||
// CHECK-DAG: [[DESTROY_SP]] = distinct !DISubprogram(name: "__destroy_helper_block_
|
||||
typedef unsigned int NSUInteger;
|
||||
|
||||
@protocol NSObject
|
||||
|
@ -57,11 +61,6 @@ static void run(void (^block)(void))
|
|||
- (id)init
|
||||
{
|
||||
if ((self = [super init])) {
|
||||
// CHECK-DAG: [[DBG_LINE]] = !DILocation(line: 0, scope: ![[COPY_SP:[0-9]+]])
|
||||
// CHECK-DAG: [[COPY_LINE]] = !DILocation(line: [[@LINE+7]], scope: ![[COPY_SP:[0-9]+]])
|
||||
// CHECK-DAG: [[COPY_SP]] = distinct !DISubprogram(name: "__copy_helper_block_8_32o"
|
||||
// CHECK-DAG: [[DESTROY_LINE]] = !DILocation(line: [[@LINE+5]], scope: ![[DESTROY_SP:[0-9]+]])
|
||||
// CHECK-DAG: [[DESTROY_SP]] = distinct !DISubprogram(name: "__destroy_helper_block_8_32o"
|
||||
// CHECK-DAG: !DILocalVariable(arg: 1, scope: ![[COPY_SP]], {{.*}}, flags: DIFlagArtificial)
|
||||
// CHECK-DAG: !DILocalVariable(arg: 2, scope: ![[COPY_SP]], {{.*}}, flags: DIFlagArtificial)
|
||||
// CHECK-DAG: !DILocalVariable(arg: 1, scope: ![[DESTROY_SP]], {{.*}}, flags: DIFlagArtificial)
|
||||
|
|
Loading…
Reference in New Issue