OLD | NEW |
---|---|
1 ; RUN: not pnacl-abicheck < %s | FileCheck %s | 1 ; RUN: not pnacl-abicheck < %s | FileCheck %s |
2 ; RUN: not pnacl-abicheck -pnaclabi-allow-debug-metadata < %s | \ | 2 ; RUN: not pnacl-abicheck -pnaclabi-allow-debug-metadata < %s | \ |
3 ; RUN: FileCheck %s --check-prefix=DBG | 3 ; RUN: FileCheck %s --check-prefix=DBG |
4 | 4 |
5 ; DBG-NOT: disallowed | 5 ; DBG-NOT: disallowed |
6 | 6 |
7 ; A debuginfo version is required. | 7 ; A debuginfo version is required. |
8 !llvm.module.flags = !{!0} | 8 !llvm.module.flags = !{!0} |
9 !0 = metadata !{i32 1, metadata !"Debug Info Version", i32 1} | 9 !0 = metadata !{i32 1, metadata !"Debug Info Version", i32 2} |
JF
2015/02/24 05:35:37
Hmm, so this update in debug info version means th
jvoung (off chromium)
2015/02/24 18:38:48
Yes good point.
| |
10 !1 = metadata !{} | |
10 | 11 |
11 declare void @llvm.dbg.declare(metadata, metadata) | 12 declare void @llvm.dbg.declare(metadata, metadata) |
12 declare void @llvm.dbg.value(metadata, i64, metadata) | 13 declare void @llvm.dbg.value(metadata, i64, metadata) |
13 | 14 |
14 ; CHECK: Function llvm.dbg.declare is a disallowed LLVM intrinsic | 15 ; CHECK: Function llvm.dbg.declare is a disallowed LLVM intrinsic |
15 ; CHECK: Function llvm.dbg.value is a disallowed LLVM intrinsic | 16 ; CHECK: Function llvm.dbg.value is a disallowed LLVM intrinsic |
16 | 17 |
17 | 18 |
18 define internal void @debug_declare(i32 %val) { | 19 define internal void @debug_declare(i32 %val) { |
19 ; We normally expect llvm.dbg.declare to be used on an alloca. | 20 ; We normally expect llvm.dbg.declare to be used on an alloca. |
20 %var = alloca [4 x i8] | 21 %var = alloca [4 x i8] |
21 tail call void @llvm.dbg.declare(metadata !{[4 x i8]* %var}, metadata !{}) | 22 tail call void @llvm.dbg.declare(metadata !{[4 x i8]* %var}, metadata !1) |
22 tail call void @llvm.dbg.declare(metadata !{i32 %val}, metadata !{}) | 23 tail call void @llvm.dbg.declare(metadata !{i32 %val}, metadata !1) |
23 ret void | 24 ret void |
24 } | 25 } |
25 | 26 |
26 define internal void @debug_value(i32 %ptr_as_int, i32 %val) { | 27 define internal void @debug_value(i32 %ptr_as_int, i32 %val) { |
27 %ptr = inttoptr i32 %ptr_as_int to i8* | 28 %ptr = inttoptr i32 %ptr_as_int to i8* |
28 tail call void @llvm.dbg.value(metadata !{i8* %ptr}, i64 2, metadata !{}) | 29 tail call void @llvm.dbg.value(metadata !{i8* %ptr}, i64 2, metadata !1) |
29 tail call void @llvm.dbg.value(metadata !{i32 %val}, i64 1, metadata !{}) | 30 tail call void @llvm.dbg.value(metadata !{i32 %val}, i64 1, metadata !1) |
30 ret void | 31 ret void |
31 } | 32 } |
32 | 33 |
33 ; FileCheck gives an error if its input file is empty, so ensure that | 34 ; FileCheck gives an error if its input file is empty, so ensure that |
34 ; the output of pnacl-abicheck is non-empty by generating at least one | 35 ; the output of pnacl-abicheck is non-empty by generating at least one |
35 ; error. | 36 ; error. |
36 declare void @bad_func(ppc_fp128 %bad_arg) | 37 declare void @bad_func(ppc_fp128 %bad_arg) |
37 ; DBG: Function bad_func has disallowed type: void (ppc_fp128) | 38 ; DBG: Function bad_func has disallowed type: void (ppc_fp128) |
OLD | NEW |