[LLVMdev] Assertion failure (Bug 21609) in DwarfFile.cpp

Sandeep Raju srand48 at gmail.com
Tue Apr 28 19:07:19 PDT 2015


Hi Folks,

I ran into this assertion failure while compiling a function with a
large number of arguments:

https://llvm.org/bugs/show_bug.cgi?id=21609

I have coded up the fix as per David's suggestion (added a new header
field for DIVariable to separate out ArgNo & LineNo). The proposed
diff is attached to the bug.

However, there are around 175 testcases across clang & llvm that need
to be udpated to reflect the new schema. One such eg:

diff --git a/test/Instrumentation/AddressSanitizer/debug_info.ll
b/test/Instrumentation/AddressSanitizer/debug_info.ll
index c0939c5..4112f14 100644
--- a/test/Instrumentation/AddressSanitizer/debug_info.ll
+++ b/test/Instrumentation/AddressSanitizer/debug_info.ll
@@ -41,9 +41,9 @@ declare void @llvm.dbg.declare(metadata, metadata,
metadata) nounwind readnone
 !7 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !8,
null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align
0, offset 0] [from ]
 !8 = !{!9, !9}
 !9 = !{!"0x24\00int\000\0032\0032\000\000\005", null, null} ; [
DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc
DW_ATE_signed]
-!10 = !{!"0x101\00p\0016777217\000", !5, !6, !9} ; [
DW_TAG_arg_variable ] [p] [line 1]
+!10 = !{!"0x101\00p\001\001\000", !5, !6, !9} ; [ DW_TAG_arg_variable
] [p] [line 1]
 !11 = !MDLocation(line: 1, scope: !5)
-!12 = !{!"0x100\00r\002\000", !13, !6, !9} ; [ DW_TAG_auto_variable ]
[r] [line 2]
+!12 = !{!"0x100\00r\002\000\000", !13, !6, !9} ; [
DW_TAG_auto_variable ] [r] [line 2]

Before I spend cycles updating the test cases, I wanted get a 'go
ahead' from code owners.

Please let me know.

Thanks,
Sandeep



More information about the llvm-dev mailing list