diff options
author | Chris Lattner <sabre@nondot.org> | 2009-02-04 05:33:01 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-02-04 05:33:01 +0000 |
commit | 95d9c5e7789d0fe214849fdaac6f3079266592aa (patch) | |
tree | 2b5b592031c01451a67187490490d5accbe536c5 /clang/test/Preprocessor/line-directive.c | |
parent | 0a1a8d8514c80cd55f7c2c0c7886f71d842f24f8 (diff) | |
download | bcm5719-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/line-directive.c')
-rw-r--r-- | clang/test/Preprocessor/line-directive.c | 20 |
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'}} |