diff options
author | Devang Patel <dpatel@apple.com> | 2010-01-05 16:59:17 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-01-05 16:59:17 +0000 |
commit | 3b620bfd58cf1e1d84563eb6208418858e903a42 (patch) | |
tree | b192c15edf150731fb8589c99f68806ba65eb9b0 | |
parent | 19f5808b1efa2bf723d3736ee784c8edc0baf29a (diff) | |
download | external_llvm-3b620bfd58cf1e1d84563eb6208418858e903a42.zip external_llvm-3b620bfd58cf1e1d84563eb6208418858e903a42.tar.gz external_llvm-3b620bfd58cf1e1d84563eb6208418858e903a42.tar.bz2 |
If a scope has only one instruction then first instruction is also the last instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92736 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 2 | ||||
-rw-r--r-- | test/DebugInfo/2010-01-05-DbgScope.ll | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 61536d5..134a497 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -218,7 +218,7 @@ public: // Use the end of last child scope as end of this scope. SmallVector<DbgScope *, 4> &Scopes = getScopes(); - const MachineInstr *LastInsn = NULL; + const MachineInstr *LastInsn = getFirstInsn(); unsigned LIndex = 0; if (Scopes.empty()) { assert (getLastInsn() && "Inner most scope does not have last insn!"); diff --git a/test/DebugInfo/2010-01-05-DbgScope.ll b/test/DebugInfo/2010-01-05-DbgScope.ll new file mode 100644 index 0000000..8cf20e3 --- /dev/null +++ b/test/DebugInfo/2010-01-05-DbgScope.ll @@ -0,0 +1,18 @@ +; RUN: llc < %s -o /dev/null +; PR 5942 +define i8* @foo() nounwind { +entry: + %0 = load i32* undef, align 4, !dbg !0 ; <i32> [#uses=1] + %1 = inttoptr i32 %0 to i8*, !dbg !0 ; <i8*> [#uses=1] + ret i8* %1, !dbg !10 + +} + +!0 = metadata !{i32 571, i32 3, metadata !1, null} +!1 = metadata !{i32 458763, metadata !2}; [DW_TAG_lexical_block ] +!2 = metadata !{i32 458798, i32 0, metadata !3, metadata !"foo", metadata !"foo", metadata !"foo", metadata !3, i32 561, metadata !4, i1 false, i1 true}; [DW_TAG_subprogram ] +!3 = metadata !{i32 458769, i32 0, i32 12, metadata !"hashtab.c", metadata !"/usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcclibs/libiberty", metadata !"clang 1.1", i1 true, i1 false, metadata !"", i32 0}; [DW_TAG_compile_unit ] +!4 = metadata !{i32 458773, metadata !3, metadata !"", null, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0}; [DW_TAG_subroutine_type ] +!5 = metadata !{metadata !6} +!6 = metadata !{i32 458788, metadata !3, metadata !"char", metadata !3, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ] +!10 = metadata !{i32 588, i32 1, metadata !2, null} |