Index: test/Transforms/NaCl/expand-ctors-zeroinit.ll |
diff --git a/test/Transforms/NaCl/expand-ctors-zeroinit.ll b/test/Transforms/NaCl/expand-ctors-zeroinit.ll |
new file mode 100644 |
index 0000000000000000000000000000000000000000..824b2b23b72d455f575aa88849630e153bad9603 |
--- /dev/null |
+++ b/test/Transforms/NaCl/expand-ctors-zeroinit.ll |
@@ -0,0 +1,17 @@ |
+; Currently we do not define __{init,fini}_array_end as named aliases. |
+; RUN: opt < %s -nacl-expand-ctors -S | FileCheck %s -check-prefix=NO_CTORS |
+; NO_CTORS-NOT: __init_array_end |
+; NO_CTORS-NOT: __fini_array_end |
+ |
+; We expect this symbol to be removed: |
+; RUN: opt < %s -nacl-expand-ctors -S | not grep llvm.global_ctors |
+ |
+; RUN: opt < %s -nacl-expand-ctors -S | FileCheck %s |
+ |
+; If llvm.global_ctors is zeroinitializer, it should be treated the |
+; same as an empty array. |
+ |
+@llvm.global_ctors = appending global [0 x { i32, void ()* }] zeroinitializer |
+ |
+; CHECK: @__init_array_start = internal constant [0 x void ()*] zeroinitializer |
+; CHECK: @__fini_array_start = internal constant [0 x void ()*] zeroinitializer |