1 // RUN: %clang_cc1 %s -fsyntax-only -verify -fms-extensions 2 3 // rdar://6495941 4 5 #define FOO 1 6 #define BAR "2" 7 8 #pragma comment(linker,"foo=" FOO) // expected-error {{pragma comment requires parenthesized identifier and optional string}} 9 #pragma comment(linker," bar=" BAR) 10 11 #pragma comment( user, "Compiled on " __DATE__ " at " __TIME__ ) 12 13 #pragma comment(foo) // expected-error {{unknown kind of pragma comment}} 14 #pragma comment(compiler,) // expected-error {{pragma comment requires}} 15 #define foo compiler 16 #pragma comment(foo) // macro expand kind. 17 #pragma comment(foo) x // expected-error {{pragma comment requires}} 18 19 #pragma comment(user, "foo\abar\nbaz\tsome thing") 20 21 22 // __pragma 23 24 __pragma(comment(linker," bar=" BAR)) 25 26 #define MACRO_WITH__PRAGMA { \ 27 __pragma(warning(push)); \ 28 __pragma(warning(disable: 10000)); \ 29 2+2; \ 30 __pragma(warning(pop)); \ 31 } 32 33 void f() 34 { 35 __pragma() 36 37 // If we ever actually *support* __pragma(warning(disable: x)), 38 // this warning should go away. 39 MACRO_WITH__PRAGMA // expected-warning {{expression result unused}} 40 } 41