Index: test/NaCl/Bitcode/no-structs.ll |
diff --git a/test/NaCl/Bitcode/no-structs.ll b/test/NaCl/Bitcode/no-structs.ll |
new file mode 100644 |
index 0000000000000000000000000000000000000000..289cc119fb6d5b22d92d5aa6b2f1f03f6f4c83ba |
--- /dev/null |
+++ b/test/NaCl/Bitcode/no-structs.ll |
@@ -0,0 +1,32 @@ |
+; Tests that even though global variables can define structured types, |
+; they types are not put into the bitcode file. |
+ |
+; RUN: llvm-as < %s | pnacl-freeze \ |
+; RUN: | pnacl-bcanalyzer -dump-records \ |
+; RUN: | FileCheck %s -check-prefix=PF2 |
+ |
+declare void @func() |
+ |
+@compound = internal global <{ [4 x i8], i32 }> |
+ <{ [4 x i8] c"home", i32 ptrtoint (void ()* @func to i32) }> |
+ |
+define void @CheckBitcastGlobal() { |
+ %1 = bitcast <{ [4 x i8], i32}>* @compound to i32* |
+ %2 = load i32* %1, align 4 |
+ ret void |
+} |
+ |
+define void @CheckPtrToIntGlobal() { |
+ %1 = ptrtoint <{ [4 x i8], i32 }>* @compound to i32 |
+ %2 = add i32 %1, 0 |
+ ret void |
+} |
+ |
+; Note that it doesn't define a struct type. |
+ |
+; PF2: <TYPE_BLOCK_ID> |
+; PF2-NEXT: <NUMENTRY op0=3/> |
+; PF2-NEXT: <INTEGER op0=32/> |
+; PF2-NEXT: <VOID/> |
+; PF2-NEXT: <FUNCTION op0=0 op1=1/> |
+; PF2-NEXT: </TYPE_BLOCK_ID> |