diff options
author | dim <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 |
commit | 952eddef9aff85b1e92626e89baaf7a360e2ac85 (patch) | |
tree | df8df0b0067b381eab470a3b8f28d14a552a6340 /test/Preprocessor/pragma_microsoft.c | |
parent | ea266cad53e3d49771fa38103913d3ec7a166694 (diff) | |
download | FreeBSD-src-952eddef9aff85b1e92626e89baaf7a360e2ac85.zip FreeBSD-src-952eddef9aff85b1e92626e89baaf7a360e2ac85.tar.gz |
Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3):
https://llvm.org/svn/llvm-project/cfe/branches/release_34@197841
Diffstat (limited to 'test/Preprocessor/pragma_microsoft.c')
-rw-r--r-- | test/Preprocessor/pragma_microsoft.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/Preprocessor/pragma_microsoft.c b/test/Preprocessor/pragma_microsoft.c index c0ddf74..e30069c 100644 --- a/test/Preprocessor/pragma_microsoft.c +++ b/test/Preprocessor/pragma_microsoft.c @@ -18,6 +18,11 @@ #pragma comment(user, "foo\abar\nbaz\tsome thing") +#pragma detect_mismatch("test", "1") +#pragma detect_mismatch() // expected-error {{expected string literal in pragma detect_mismatch}} +#pragma detect_mismatch("test") // expected-error {{pragma detect_mismatch is malformed; it requires two comma-separated string literals}} +#pragma detect_mismatch("test", 1) // expected-error {{expected string literal in pragma detect_mismatch}} +#pragma detect_mismatch("test", BAR) // __pragma @@ -82,3 +87,31 @@ void g() {} // Make sure that empty includes don't work #pragma include_alias("", "foo.h") // expected-error {{empty filename}} #pragma include_alias(<foo.h>, <>) // expected-error {{empty filename}} + +// Test that we ignore pragma warning. +#pragma warning(push) +#pragma warning(push, 1) +#pragma warning(disable : 4705) +#pragma warning(disable : 123 456 789 ; error : 321) +#pragma warning(once : 321) +#pragma warning(suppress : 321) +#pragma warning(default : 321) +#pragma warning(pop) + +#pragma warning(push, 0) +// FIXME: We could probably support pushing warning level 0. +#pragma warning(pop) + +#pragma warning // expected-warning {{expected '('}} +#pragma warning( // expected-warning {{expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4}} +#pragma warning() // expected-warning {{expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4}} +#pragma warning(push 4) // expected-warning {{expected ')'}} +#pragma warning(push // expected-warning {{expected ')'}} +#pragma warning(push, 5) // expected-warning {{requires a level between 0 and 4}} +#pragma warning(pop, 1) // expected-warning {{expected ')'}} +#pragma warning(push, 1) asdf // expected-warning {{extra tokens at end of #pragma warning directive}} +#pragma warning(disable 4705) // expected-warning {{expected ':'}} +#pragma warning(disable : 0) // expected-warning {{expected a warning number}} +#pragma warning(default 321) // expected-warning {{expected ':'}} +#pragma warning(asdf : 321) // expected-warning {{expected 'push', 'pop'}} +#pragma warning(push, -1) // expected-warning {{requires a level between 0 and 4}} |