Check for warnings about inappropriate weak_imports.
authorStuart Hastings <stuart@apple.com>
Tue, 10 Mar 2009 00:17:39 +0000 (00:17 +0000)
committerStuart Hastings <stuart@apple.com>
Tue, 10 Mar 2009 00:17:39 +0000 (00:17 +0000)
Darwin-specific; marked XFAIL for others.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66514 91177308-0d34-0410-b5e6-96231b3b80d8

test/FrontendC/2009-03-09-WeakDeclarations-1.c [new file with mode: 0644]

diff --git a/test/FrontendC/2009-03-09-WeakDeclarations-1.c b/test/FrontendC/2009-03-09-WeakDeclarations-1.c
new file mode 100644 (file)
index 0000000..a0b7efb
--- /dev/null
@@ -0,0 +1,22 @@
+// RUN: $llvmgcc $test -c -o /dev/null |& \
+// RUN: egrep {(14|15|22): warning:} | \
+// RUN: wc -l | grep --quiet 3
+// TARGET: *-*-darwin
+// XFAIL: alpha|ia64|sparc
+// END.
+// Insist upon warnings for inappropriate weak attributes.
+// Note the line numbers (14|15|22) embedded in the check.
+
+// O.K.
+extern int ext_weak_import __attribute__ ((__weak_import__));
+
+// These are inappropriate, and should generate warnings:
+int decl_weak_import __attribute__ ((__weak_import__));
+int decl_initialized_weak_import __attribute__ ((__weak_import__)) = 13;
+
+// O.K.
+extern int ext_f(void) __attribute__ ((__weak_import__));
+
+// These are inappropriate, and should generate warnings:
+int def_f(void) __attribute__ ((__weak_import__));
+int __attribute__ ((__weak_import__)) decl_f(void) {return 0;};