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 | eed55e6061768c0faff62dda22c6edad9d286501 (patch) | |
tree | 2345984f87f42765e533be165639d8905efe95ed /test/Lexer | |
parent | 75525c4cce5e1e097d3fab4391b11619d87cedfd (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176540 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Lexer')
-rw-r--r-- | test/Lexer/builtin_redef.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/Lexer/builtin_redef.c b/test/Lexer/builtin_redef.c new file mode 100644 index 0000000000..c9351dc4a6 --- /dev/null +++ b/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__ |