summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2013-03-27 17:17:23 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2013-03-27 17:17:23 +0000
commit0f06b983878c31d30045b193f565135061a6b38c (patch)
tree7dd8c81fd52e2ee0fa096d06c6027d39ef6b53bb /clang/test
parentfd433365e08da024ddc99dd0d7bce8e89d8c5469 (diff)
downloadbcm5719-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.h3
-rw-r--r--clang/test/Modules/Inputs/module.map4
-rw-r--r--clang/test/Modules/diag-pragma.c13
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;
+}
OpenPOWER on IntegriCloud