blob: 0d2ebe663c003f4ad18d7073390ef4c77e11ba0e [file] [log] [blame]
David Blaikie866c87f2014-05-11 17:25:50 +00001; REQUIRES: object-emission
2
3; RUN: %llc_dwarf -O0 -filetype=obj %s -o - | llvm-dwarfdump -debug-dump=info - | FileCheck %s
4; Use correct signedness when emitting constants of derived (sugared) types.
5
David Blaikiec405c9c2014-05-16 21:53:09 +00006; Test compiled to IR from clang with -O1 and the following source:
David Blaikie866c87f2014-05-11 17:25:50 +00007
8; void func(int);
9; void func(unsigned);
David Blaikiec405c9c2014-05-16 21:53:09 +000010; void func(char16_t);
David Blaikie866c87f2014-05-11 17:25:50 +000011; int main() {
12; const int i = 42;
13; func(i);
14; const unsigned j = 117;
15; func(j);
David Blaikiec405c9c2014-05-16 21:53:09 +000016; char16_t c = 7;
17; func(c);
David Blaikie866c87f2014-05-11 17:25:50 +000018; }
19
20; CHECK: DW_AT_const_value [DW_FORM_sdata] (42)
21; CHECK: DW_AT_const_value [DW_FORM_udata] (117)
David Blaikiec405c9c2014-05-16 21:53:09 +000022; CHECK: DW_AT_const_value [DW_FORM_udata] (7)
David Blaikie866c87f2014-05-11 17:25:50 +000023
24; Function Attrs: uwtable
25define i32 @main() #0 {
26entry:
David Blaikiec405c9c2014-05-16 21:53:09 +000027 tail call void @llvm.dbg.value(metadata !20, i64 0, metadata !10), !dbg !21
28 tail call void @_Z4funci(i32 42), !dbg !22
29 tail call void @llvm.dbg.value(metadata !23, i64 0, metadata !12), !dbg !24
30 tail call void @_Z4funcj(i32 117), !dbg !25
31 tail call void @llvm.dbg.value(metadata !26, i64 0, metadata !15), !dbg !27
32 tail call void @_Z4funcDs(i16 zeroext 7), !dbg !28
33 ret i32 0, !dbg !29
David Blaikie866c87f2014-05-11 17:25:50 +000034}
35
36declare void @_Z4funci(i32) #1
37
38declare void @_Z4funcj(i32) #1
39
David Blaikiec405c9c2014-05-16 21:53:09 +000040declare void @_Z4funcDs(i16 zeroext) #1
41
David Blaikie866c87f2014-05-11 17:25:50 +000042; Function Attrs: nounwind readnone
43declare void @llvm.dbg.value(metadata, i64, metadata) #2
44
45attributes #0 = { uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
46attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
47attributes #2 = { nounwind readnone }
48
49!llvm.dbg.cu = !{!0}
David Blaikiec405c9c2014-05-16 21:53:09 +000050!llvm.module.flags = !{!17, !18}
51!llvm.ident = !{!19}
David Blaikie866c87f2014-05-11 17:25:50 +000052
53!0 = metadata !{i32 786449, metadata !1, i32 4, metadata !"clang version 3.5.0 ", i1 true, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2, metadata !"", i32 1} ; [ DW_TAG_compile_unit ] [/tmp/dbginfo/const.cpp] [DW_LANG_C_plus_plus]
54!1 = metadata !{metadata !"const.cpp", metadata !"/tmp/dbginfo"}
55!2 = metadata !{}
56!3 = metadata !{metadata !4}
David Blaikiec405c9c2014-05-16 21:53:09 +000057!4 = metadata !{i32 786478, metadata !1, metadata !5, metadata !"main", metadata !"main", metadata !"", i32 4, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 ()* @main, null, null, metadata !9, i32 4} ; [ DW_TAG_subprogram ] [line 4] [def] [main]
David Blaikie866c87f2014-05-11 17:25:50 +000058!5 = metadata !{i32 786473, metadata !1} ; [ DW_TAG_file_type ] [/tmp/dbginfo/const.cpp]
59!6 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !7, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
60!7 = metadata !{metadata !8}
61!8 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
David Blaikiec405c9c2014-05-16 21:53:09 +000062!9 = metadata !{metadata !10, metadata !12, metadata !15}
63!10 = metadata !{i32 786688, metadata !4, metadata !"i", metadata !5, i32 5, metadata !11, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [i] [line 5]
David Blaikie866c87f2014-05-11 17:25:50 +000064!11 = metadata !{i32 786470, null, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, metadata !8} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from int]
David Blaikiec405c9c2014-05-16 21:53:09 +000065!12 = metadata !{i32 786688, metadata !4, metadata !"j", metadata !5, i32 7, metadata !13, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [j] [line 7]
David Blaikie866c87f2014-05-11 17:25:50 +000066!13 = metadata !{i32 786470, null, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, metadata !14} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from unsigned int]
67!14 = metadata !{i32 786468, null, null, metadata !"unsigned int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ] [unsigned int] [line 0, size 32, align 32, offset 0, enc DW_ATE_unsigned]
David Blaikiec405c9c2014-05-16 21:53:09 +000068!15 = metadata !{i32 786688, metadata !4, metadata !"c", metadata !5, i32 9, metadata !16, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [c] [line 9]
69!16 = metadata !{i32 786468, null, null, metadata !"char16_t", i32 0, i64 16, i64 16, i64 0, i32 0, i32 16} ; [ DW_TAG_base_type ] [char16_t] [line 0, size 16, align 16, offset 0, enc DW_ATE_UTF]
70!17 = metadata !{i32 2, metadata !"Dwarf Version", i32 4}
71!18 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
72!19 = metadata !{metadata !"clang version 3.5.0 "}
73!20 = metadata !{i32 42}
74!21 = metadata !{i32 5, i32 0, metadata !4, null}
David Blaikie866c87f2014-05-11 17:25:50 +000075!22 = metadata !{i32 6, i32 0, metadata !4, null}
David Blaikiec405c9c2014-05-16 21:53:09 +000076!23 = metadata !{i32 117}
77!24 = metadata !{i32 7, i32 0, metadata !4, null}
78!25 = metadata !{i32 8, i32 0, metadata !4, null} ; [ DW_TAG_imported_declaration ]
79!26 = metadata !{i16 7}
80!27 = metadata !{i32 9, i32 0, metadata !4, null}
81!28 = metadata !{i32 10, i32 0, metadata !4, null}
82!29 = metadata !{i32 11, i32 0, metadata !4, null}