diff --git a/llvm/test/FrontendC/2009-03-09-WeakDeclarations-1.c b/llvm/test/FrontendC/2009-03-09-WeakDeclarations-1.c new file mode 100644 index 000000000000..a0b7efbfef24 --- /dev/null +++ b/llvm/test/FrontendC/2009-03-09-WeakDeclarations-1.c @@ -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;};