Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1451)

Unified Diff: test/NaCl/PNaClABI/global-attributes.ll

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/NaCl/PNaClABI/function-signatures.ll ('k') | test/NaCl/PNaClABI/instcombine.ll » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/NaCl/PNaClABI/global-attributes.ll
diff --git a/test/NaCl/PNaClABI/global-attributes.ll b/test/NaCl/PNaClABI/global-attributes.ll
new file mode 100644
index 0000000000000000000000000000000000000000..0690bd4a5f84a42bc72a91c7f18bb3b7c536df5b
--- /dev/null
+++ b/test/NaCl/PNaClABI/global-attributes.ll
@@ -0,0 +1,68 @@
+; RUN: not pnacl-abicheck < %s | FileCheck %s
+
+; Global variable attributes
+
+; CHECK: Variable var_with_section has disallowed "section" attribute
+@var_with_section = internal global [1 x i8] zeroinitializer, section ".some_section"
+
+; PNaCl programs can depend on data alignments in general, so we allow
+; "align" on global variables.
+; CHECK-NOT: var_with_alignment
+@var_with_alignment = internal global [4 x i8] zeroinitializer, align 8
+
+; TLS variables must be expanded out by ExpandTls.
+; CHECK-NEXT: Variable tls_var has disallowed "thread_local" attribute
+@tls_var = internal thread_local global [4 x i8] zeroinitializer
+
+; CHECK-NEXT: Variable var_with_unnamed_addr has disallowed "unnamed_addr" attribute
+@var_with_unnamed_addr = internal unnamed_addr constant [1 x i8] c"x"
+
+; CHECK-NEXT: Variable var_ext_init has disallowed "externally_initialized" attribute
+@var_ext_init = internal externally_initialized global [1 x i8] c"x"
+
+
+; Function attributes
+
+; CHECK-NEXT: Function func_with_attrs has disallowed attributes: noreturn nounwind
+define internal void @func_with_attrs() noreturn nounwind {
+ ret void
+}
+
+; CHECK-NEXT: Function func_with_arg_attrs has disallowed attributes: inreg zeroext
+define internal void @func_with_arg_attrs(i32 inreg zeroext) {
+ ret void
+}
+
+; CHECK-NEXT: Function func_with_callingconv has disallowed calling convention: fastcc (8)
+define internal fastcc void @func_with_callingconv() {
+ ret void
+}
+
+; CHECK-NEXT: Function func_with_section has disallowed "section" attribute
+define internal void @func_with_section() section ".some_section" {
+ ret void
+}
+
+; CHECK-NEXT: Function func_with_alignment has disallowed "align" attribute
+define internal void @func_with_alignment() align 1 {
+ ret void
+}
+
+; CHECK-NEXT: Function func_with_gc has disallowed "gc" attribute
+define internal void @func_with_gc() gc "my_gc_func" {
+ ret void
+}
+
+; CHECK-NEXT: Function func_with_unnamed_addr has disallowed "unnamed_addr" attribute
+define internal void @func_with_unnamed_addr() unnamed_addr {
+ ret void
+}
+
+; CHECK-NOT: disallowed
+; If another check is added, there should be a check-not in between each check
+
+
+; This stops the verifier from complaining about the lack of an entry point.
+define void @_start(i32 %arg) {
+ ret void
+}
« no previous file with comments | « test/NaCl/PNaClABI/function-signatures.ll ('k') | test/NaCl/PNaClABI/instcombine.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698