summaryrefslogtreecommitdiffstats
path: root/clang/test/Preprocessor/poison.c
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Preprocessor/poison.c')
-rw-r--r--clang/test/Preprocessor/poison.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/clang/test/Preprocessor/poison.c b/clang/test/Preprocessor/poison.c
index 9759ae473fe..d91feb7ff2d 100644
--- a/clang/test/Preprocessor/poison.c
+++ b/clang/test/Preprocessor/poison.c
@@ -1,4 +1,20 @@
-// RUN: clang-cc %s -E 2>&1 | grep error
+// RUN: clang-cc %s -Eonly -verify
#pragma GCC poison rindex
-rindex(some_string, 'h');
+rindex(some_string, 'h'); // expected-error {{attempt to use a poisoned identifier}}
+
+#define BAR _Pragma ("GCC poison XYZW") XYZW /*NO ERROR*/
+ XYZW // ok
+BAR
+ XYZW // expected-error {{attempt to use a poisoned identifier}}
+
+// Pragma poison shouldn't warn from macro expansions defined before the token
+// is poisoned.
+
+#define strrchr rindex2
+#pragma GCC poison rindex2
+
+// Can poison multiple times.
+#pragma GCC poison rindex2
+
+strrchr(some_string, 'h'); // ok.
OpenPOWER on IntegriCloud