pragma-weak.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // RUN: %clang_cc1 -fsyntax-only -verify %s
  2. // Note that this puts the expected lines before the directives to work around
  3. // limitations in the -verify mode.
  4. int x;
  5. /* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak
  6. #pragma weak x
  7. extern int z;
  8. /* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak z = =
  9. /* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak z =
  10. /* expected-warning {{weak identifier 'y' never declared}} */ #pragma weak z = y
  11. extern int a;
  12. /* expected-warning {{extra tokens at end of '#pragma weak'}}*/ #pragma weak a b
  13. /* expected-warning {{extra tokens at end of '#pragma weak'}}*/ #pragma weak a = x c
  14. void pragma_is_not_a_statement(int x)
  15. {
  16. int t;
  17. {
  18. if (x)
  19. #pragma weak t
  20. else // expected-error {{expected expression}}
  21. #pragma weak t
  22. }
  23. switch (x) {
  24. case 1:
  25. #pragma weak t
  26. } // expected-error {{expected statement}}
  27. switch(x) {
  28. default:
  29. #pragma weak t
  30. } // expected-error {{expected statement}}
  31. label:
  32. #pragma weak t
  33. } // expected-error {{expected statement}}