diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-27 17:17:23 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-27 17:17:23 +0000 |
commit | 0f06b983878c31d30045b193f565135061a6b38c (patch) | |
tree | 7dd8c81fd52e2ee0fa096d06c6027d39ef6b53bb /clang/test | |
parent | fd433365e08da024ddc99dd0d7bce8e89d8c5469 (diff) | |
download | bcm5719-llvm-0f06b983878c31d30045b193f565135061a6b38c.tar.gz bcm5719-llvm-0f06b983878c31d30045b193f565135061a6b38c.zip |
[modules] Make sure enabled diagnostic pragmas inside the module don't affect the translation unit that
imports the module.
Getting diagnostic sections from modules properly working is a fixme.
rdar://13516663
llvm-svn: 178151
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Modules/Inputs/diag_pragma.h | 3 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/module.map | 4 | ||||
-rw-r--r-- | clang/test/Modules/diag-pragma.c | 13 |
3 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/diag_pragma.h b/clang/test/Modules/Inputs/diag_pragma.h new file mode 100644 index 00000000000..a8f958994ca --- /dev/null +++ b/clang/test/Modules/Inputs/diag_pragma.h @@ -0,0 +1,3 @@ +#define DIAG_PRAGMA_MACRO 1 + +#pragma clang diagnostic ignored "-Wparentheses" diff --git a/clang/test/Modules/Inputs/module.map b/clang/test/Modules/Inputs/module.map index 479bfcfa7ff..93ba4935ffd 100644 --- a/clang/test/Modules/Inputs/module.map +++ b/clang/test/Modules/Inputs/module.map @@ -188,3 +188,7 @@ module config { header "config.h" config_macros [exhaustive] WANT_FOO, WANT_BAR } + +module diag_pragma { + header "diag_pragma.h" +} diff --git a/clang/test/Modules/diag-pragma.c b/clang/test/Modules/diag-pragma.c new file mode 100644 index 00000000000..7ec3400bba2 --- /dev/null +++ b/clang/test/Modules/diag-pragma.c @@ -0,0 +1,13 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodules-cache-path=%t -fmodule-name=diag_pragma %S/Inputs/module.map +// RUN: %clang_cc1 -fmodules -x objective-c -verify -fmodules-cache-path=%t %s +// FIXME: When we have a syntax for modules in C, use that. + +@import diag_pragma; + +int foo(int x) { + if (x = DIAG_PRAGMA_MACRO) // expected-warning {{using the result of an assignment as a condition without parentheses}} \ + // expected-note {{place parentheses}} expected-note {{use '=='}} + return 0; + return 1; +} |