blob: b68d6e363eb8f263703806253e2849d75f0209be [file] [log] [blame]
Daniel Dunbar8fbe78f2009-12-15 20:14:24 +00001// RUN: %clang_cc1 %s -fsyntax-only -verify -fms-extensions
Chris Lattner2ff698d2009-01-16 08:21:25 +00002
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
Chris Lattner5eef5072009-01-16 19:25:54 +000016#pragma comment(foo) // macro expand kind.
Chris Lattner2ff698d2009-01-16 08:21:25 +000017#pragma comment(foo) x // expected-error {{pragma comment requires}}
18
Chris Lattner5eef5072009-01-16 19:25:54 +000019#pragma comment(user, "foo\abar\nbaz\tsome thing")
20
John McCall89e925d2010-08-28 22:34:47 +000021
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.
Argyrios Kyrtzidis40cec832010-09-19 23:03:35 +000039 MACRO_WITH__PRAGMA // expected-warning {{expression result unused}}
John McCall89e925d2010-08-28 22:34:47 +000040}