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 33void 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