summaryrefslogtreecommitdiffstats
path: root/clang/test/Preprocessor
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-04 05:33:01 +0000
committerChris Lattner <sabre@nondot.org>2009-02-04 05:33:01 +0000
commit95d9c5e7789d0fe214849fdaac6f3079266592aa (patch)
tree2b5b592031c01451a67187490490d5accbe536c5 /clang/test/Preprocessor
parent0a1a8d8514c80cd55f7c2c0c7886f71d842f24f8 (diff)
downloadbcm5719-llvm-95d9c5e7789d0fe214849fdaac6f3079266592aa.tar.gz
bcm5719-llvm-95d9c5e7789d0fe214849fdaac6f3079266592aa.zip
make getFileCharacteristic linetable aware. line markers that
play around with the 'is system header' bit now function correctly. llvm-svn: 63720
Diffstat (limited to 'clang/test/Preprocessor')
-rw-r--r--clang/test/Preprocessor/line-directive.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/Preprocessor/line-directive.c b/clang/test/Preprocessor/line-directive.c
index 6946ad48545..0a4b5822392 100644
--- a/clang/test/Preprocessor/line-directive.c
+++ b/clang/test/Preprocessor/line-directive.c
@@ -34,3 +34,23 @@
#error ABC // expected-error {{#error ABC}}
#error DEF // expected-error {{#error DEF}}
+
+// Verify that linemarker diddling of the system header flag works.
+
+# 192 "glomp.h" // not a system header.
+typedef int x; // expected-note {{previous definition is here}}
+typedef int x; // expected-error {{redefinition of 'x'}}
+
+# 192 "glomp.h" 3 // System header.
+typedef int y; // ok
+typedef int y; // ok
+
+#line 42 "blonk.h" // doesn't change system headerness.
+
+typedef int z; // ok
+typedef int z; // ok
+
+# 42 "blonk.h" // DOES change system headerness.
+
+typedef int w; // expected-note {{previous definition is here}}
+typedef int w; // expected-error {{redefinition of 'w'}}
OpenPOWER on IntegriCloud