diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-03-06 00:46:00 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-03-06 00:46:00 +0000 |
commit | 7b24254e91a0984b57278ddc5e84cf8ed194074e (patch) | |
tree | 1bcf9f518b574faf00ab162d3d072bef7359568e /clang/test/Lexer/builtin_redef.c | |
parent | 47ef466b0fcd5d8add0d2fd2f2430dee16a03ce5 (diff) | |
download | bcm5719-llvm-7b24254e91a0984b57278ddc5e84cf8ed194074e.tar.gz bcm5719-llvm-7b24254e91a0984b57278ddc5e84cf8ed194074e.zip |
After issuing a diagnostic for undefining or redefining a builtin macro,
continue parsing the directive rather than silently discarding it.
Allowing undef or redef of __TIME__ and __DATE__ is important to folks
who want stable, reproducible builds.
llvm-svn: 176540
Diffstat (limited to 'clang/test/Lexer/builtin_redef.c')
-rw-r--r-- | clang/test/Lexer/builtin_redef.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/clang/test/Lexer/builtin_redef.c b/clang/test/Lexer/builtin_redef.c new file mode 100644 index 00000000000..c9351dc4a69 --- /dev/null +++ b/clang/test/Lexer/builtin_redef.c @@ -0,0 +1,19 @@ +// RUN: %clang_cc1 %s -D__TIME__=1234 -U__DATE__ -E 2>&1 | FileCheck %s --check-prefix=CHECK-OUT +// RUN: %clang_cc1 %s -D__TIME__=1234 -U__DATE__ -E 2>&1 | FileCheck %s --check-prefix=CHECK-WARN +// RUN: %clang_cc1 %s -D__TIME__=1234 -U__DATE__ -E 2>&1 -pedantic-errors | FileCheck %s --check-prefix=CHECK-ERR + +// CHECK-WARN: <command line>:{{.*}} warning: redefining builtin macro +// CHECK-WARN: <command line>:{{.*}} warning: undefining builtin macro + +// CHECK-ERR: <command line>:{{.*}} error: redefining builtin macro +// CHECK-ERR: <command line>:{{.*}} error: undefining builtin macro + +int n = __TIME__; +__DATE__ + +#define __FILE__ "my file" +// CHECK-WARN: :[[@LINE-1]]:9: warning: redefining builtin macro +// CHECK-ERR: :[[@LINE-2]]:9: error: redefining builtin macro + +// CHECK-OUT: int n = 1234; +// CHECK-OUT: __DATE__ |