| Index: test/NaCl/Bitcode/pnacl-bcdis/global-fwd-ref.ll
|
| diff --git a/test/NaCl/Bitcode/pnacl-bcdis/global-fwd-ref.ll b/test/NaCl/Bitcode/pnacl-bcdis/global-fwd-ref.ll
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..915a58d28993bb815505673db22ac8d6e5f6e8ab
|
| --- /dev/null
|
| +++ b/test/NaCl/Bitcode/pnacl-bcdis/global-fwd-ref.ll
|
| @@ -0,0 +1,48 @@
|
| +; Tests that forward (relocation) reference to a global works.
|
| +
|
| +; RUN: llvm-as < %s | pnacl-freeze | pnacl-bccompress --remove-abbreviations \
|
| +; RUN: | pnacl-bcdis | FileCheck %s
|
| +
|
| +; CHECK: 0:0|<65532, 80, 69, 88, 69, 1, 0,|Magic Number: 'PEXE' (80, 69, 88, 69)
|
| +; CHECK-NEXT: | 8, 0, 17, 0, 4, 0, 2, 0, 0, |PNaCl Version: 2
|
| +; CHECK-NEXT: | 0> |
|
| +; CHECK-NEXT: 16:0|1: <65535, 8, 2> |module { // BlockID = 8
|
| +; CHECK-NEXT: 24:0| 3: <1, 1> | version 1;
|
| +; CHECK-NEXT: 26:4| 1: <65535, 0, 2> | abbreviations { // BlockID = 0
|
| +; CHECK-NEXT: 36:0| 0: <65534> | }
|
| +; CHECK-NEXT: 40:0| 1: <65535, 17, 2> | types { // BlockID = 17
|
| +; CHECK-NEXT: 48:0| 3: <1, 2> | count 2;
|
| +; CHECK-NEXT: 50:4| 3: <2> | @t0 = void;
|
| +; CHECK-NEXT: 52:2| 3: <21, 0, 0> | @t1 = void ();
|
| +; CHECK-NEXT: 55:4| 0: <65534> | }
|
| +
|
| +declare void @f0()
|
| +
|
| +; CHECK-NEXT: 56:0| 3: <8, 1, 0, 1, 0> | declare external void @f0();
|
| +; CHECK-NEXT: 60:6| 1: <65535, 19, 2> | globals { // BlockID = 19
|
| +; CHECK-NEXT: 68:0| 3: <5, 2> | count 2;
|
| +
|
| +@g0 = internal global <{ i32 , i32 , i32 }>
|
| + <{ i32 ptrtoint (void ()* @f0 to i32),
|
| + i32 ptrtoint (<{ i32 , i32 , i32 }>* @g0 to i32),
|
| + i32 ptrtoint ([4 x i8]* @g1 to i32) ; forward reference!
|
| + }>, align 1
|
| +
|
| +; CHECK-NEXT: 70:4| 3: <0, 1, 0> | var @g0, align 1,
|
| +; CHECK-NEXT: 73:6| 3: <1, 3> | initializers 3 {
|
| +; CHECK-NEXT: 76:2| 3: <4, 0> | reloc @f0;
|
| +; CHECK-NEXT: 78:6| 3: <4, 1> | reloc @g0;
|
| +; CHECK-NEXT: 81:2| 3: <4, 2> | reloc @g1;
|
| +; CHECK-NEXT: | | }
|
| +
|
| +@g1 = internal global [4 x i8] zeroinitializer, align 4
|
| +
|
| +; CHECK-NEXT: 83:6| 3: <0, 3, 0> | var @g1, align 4,
|
| +; CHECK-NEXT: 87:0| 3: <2, 4> | zerofill 4;
|
| +; CHECK-NEXT: 89:4| 0: <65534> | }
|
| +; CHECK-NEXT: 92:0| 1: <65535, 14, 2> | valuesymtab { // BlockID = 14
|
| +; CHECK-NEXT: 100:0| 3: <1, 0, 102, 48> | @f0 : "f0";
|
| +; CHECK-NEXT: 105:4| 3: <1, 1, 103, 48> | @g0 : "g0";
|
| +; CHECK-NEXT: 111:0| 3: <1, 2, 103, 49> | @g1 : "g1";
|
| +; CHECK-NEXT: 116:4| 0: <65534> | }
|
| +; CHECK-NEXT: 120:0|0: <65534> |}
|
|
|