diff options
| author | Vitaly Buka <vitalybuka@google.com> | 2018-09-27 08:15:24 +0000 |
|---|---|---|
| committer | Vitaly Buka <vitalybuka@google.com> | 2018-09-27 08:15:24 +0000 |
| commit | 84ffd06f8bdc18302cdd134ea22b7071adddb0a4 (patch) | |
| tree | f3cb8bd51e4b2b6e883e57d82f3e81bcfc1db96a | |
| parent | ab4f15e20c5ff05c040fbb2ba7f4686d77fd58c2 (diff) | |
| download | bcm5719-llvm-84ffd06f8bdc18302cdd134ea22b7071adddb0a4.tar.gz bcm5719-llvm-84ffd06f8bdc18302cdd134ea22b7071adddb0a4.zip | |
Revert "[DebugInfo] Generate debug information for labels."
This reverts commit r343148.
It crashes on sanitizer-x86_64-linux-autoconf.
llvm-svn: 343183
| -rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 26 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.h | 3 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGStmt.cpp | 10 | ||||
| -rw-r--r-- | clang/test/CodeGen/debug-label-inline.c | 28 | ||||
| -rw-r--r-- | clang/test/CodeGen/debug-label.c | 16 |
5 files changed, 0 insertions, 83 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index da231c90897..7d6eb83f12d 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -3767,32 +3767,6 @@ CGDebugInfo::EmitDeclareOfAutoVariable(const VarDecl *VD, llvm::Value *Storage, return EmitDeclare(VD, Storage, llvm::None, Builder); } -void CGDebugInfo::EmitLabel(const LabelDecl *D, CGBuilderTy &Builder) { - assert(DebugKind >= codegenoptions::LimitedDebugInfo); - assert(!LexicalBlockStack.empty() && "Region stack mismatch, stack empty!"); - - if (D->hasAttr<NoDebugAttr>()) - return; - - auto *Scope = cast<llvm::DIScope>(LexicalBlockStack.back()); - llvm::DIFile *Unit = getOrCreateFile(D->getLocation()); - - // Get location information. - unsigned Line = getLineNumber(D->getLocation()); - unsigned Column = getColumnNumber(D->getLocation()); - - StringRef Name = D->getName(); - - // Create the descriptor for the label. - auto *L = - DBuilder.createLabel(Scope, Name, Unit, Line, CGM.getLangOpts().Optimize); - - // Insert an llvm.dbg.label into the current block. - DBuilder.insertLabel(L, - llvm::DebugLoc::get(Line, Column, Scope, CurInlinedAt), - Builder.GetInsertBlock()); -} - llvm::DIType *CGDebugInfo::CreateSelfType(const QualType &QualTy, llvm::DIType *Ty) { llvm::DIType *CachedTy = getTypeOrNull(QualTy); diff --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h index 9e771072aa5..8641c2d8969 100644 --- a/clang/lib/CodeGen/CGDebugInfo.h +++ b/clang/lib/CodeGen/CGDebugInfo.h @@ -415,9 +415,6 @@ public: llvm::Value *AI, CGBuilderTy &Builder); - /// Emit call to \c llvm.dbg.label for an label. - void EmitLabel(const LabelDecl *D, CGBuilderTy &Builder); - /// Emit call to \c llvm.dbg.declare for an imported variable /// declaration in a block. void EmitDeclareOfBlockDeclRefVariable( diff --git a/clang/lib/CodeGen/CGStmt.cpp b/clang/lib/CodeGen/CGStmt.cpp index 0bcf3554dc8..09c322a8529 100644 --- a/clang/lib/CodeGen/CGStmt.cpp +++ b/clang/lib/CodeGen/CGStmt.cpp @@ -531,16 +531,6 @@ void CodeGenFunction::EmitLabel(const LabelDecl *D) { } EmitBlock(Dest.getBlock()); - - // Emit debug info for labels. - if (CGDebugInfo *DI = getDebugInfo()) { - if (CGM.getCodeGenOpts().getDebugInfo() >= - codegenoptions::LimitedDebugInfo) { - DI->setLocation(D->getLocation()); - DI->EmitLabel(D, Builder); - } - } - incrementProfileCounter(D->getStmt()); } diff --git a/clang/test/CodeGen/debug-label-inline.c b/clang/test/CodeGen/debug-label-inline.c deleted file mode 100644 index c0b089aad8e..00000000000 --- a/clang/test/CodeGen/debug-label-inline.c +++ /dev/null @@ -1,28 +0,0 @@ -// This test will test the correctness of generating DILabel and -// llvm.dbg.label when the label is in inlined functions. -// -// RUN: %clang_cc1 -O2 %s -o - -emit-llvm -debug-info-kind=limited | FileCheck %s -inline int f1(int a, int b) { - int sum; - -top: - sum = a + b; - return sum; -} - -extern int ga, gb; - -int f2(void) { - int result; - - result = f1(ga, gb); - // CHECK: call void @llvm.dbg.label(metadata [[LABEL_METADATA:!.*]]), !dbg [[LABEL_LOCATION:!.*]] - - return result; -} - -// CHECK: distinct !DISubprogram(name: "f1", {{.*}}, retainedNodes: [[ELEMENTS:!.*]]) -// CHECK: [[ELEMENTS]] = !{{{.*}}, [[LABEL_METADATA]]} -// CHECK: [[LABEL_METADATA]] = !DILabel({{.*}}, name: "top", {{.*}}, line: 8) -// CHECK: [[INLINEDAT:!.*]] = distinct !DILocation(line: 18, -// CHECK: [[LABEL_LOCATION]] = !DILocation(line: 8, {{.*}}, inlinedAt: [[INLINEDAT]]) diff --git a/clang/test/CodeGen/debug-label.c b/clang/test/CodeGen/debug-label.c deleted file mode 100644 index 20efa49b0a4..00000000000 --- a/clang/test/CodeGen/debug-label.c +++ /dev/null @@ -1,16 +0,0 @@ -// This test will test the correstness of generating DILabel and -// llvm.dbg.label for labels. -// -// RUN: %clang_cc1 -emit-llvm %s -o - -emit-llvm -debug-info-kind=limited | FileCheck %s - -int f1(int a, int b) { - int sum; - -top: - // CHECK: call void @llvm.dbg.label(metadata [[LABEL_METADATA:!.*]]), !dbg [[LABEL_LOCATION:!.*]] - sum = a + b; - return sum; -} - -// CHECK: [[LABEL_METADATA]] = !DILabel({{.*}}, name: "top", {{.*}}, line: 9) -// CHECK: [[LABEL_LOCATION]] = !DILocation(line: 9, |

