diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-11-14 23:55:25 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-11-14 23:55:25 +0000 |
| commit | 0b50cb79ada2f361b11571b56350587012d0f1da (patch) | |
| tree | 47400c99a4c37db7246856c07d2c20f19aa774f1 /clang/test | |
| parent | a19a126ee3cdcf304272042a8e29ea841e22e0d4 (diff) | |
| download | bcm5719-llvm-0b50cb79ada2f361b11571b56350587012d0f1da.tar.gz bcm5719-llvm-0b50cb79ada2f361b11571b56350587012d0f1da.zip | |
Add -cc1 option -fno-diagnostics-use-presumed-location, a handy mode for
working with preprocessed testcases. This causes source locations in
diagnostics to point at the spelling location instead of the presumed location,
while still keeping the semantic effects of the line directives (entering and
leaving system-header mode, primarily).
llvm-svn: 168004
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Misc/diag-presumed.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/clang/test/Misc/diag-presumed.c b/clang/test/Misc/diag-presumed.c new file mode 100644 index 00000000000..07b7cdfe351 --- /dev/null +++ b/clang/test/Misc/diag-presumed.c @@ -0,0 +1,36 @@ +// RUN: %clang_cc1 -fsyntax-only -pedantic-errors %s 2>&1 | FileCheck %s --check-prefix=PRESUMED +// RUN: %clang_cc1 -fsyntax-only -pedantic-errors -fno-diagnostics-use-presumed-location %s 2>&1 | FileCheck %s --check-prefix=SPELLING + +#line 100 +#define X(y) y +X(int n = error); + +// PRESUMED: diag-presumed.c:101:11: error: use of undeclared identifier 'error' +// PRESUMED: diag-presumed.c:100:14: note: expanded from +// SPELLING: diag-presumed.c:6:11: error: use of undeclared identifier 'error' +// SPELLING: diag-presumed.c:5:14: note: expanded from + +; +// PRESUMED: diag-presumed.c:108:1: error: extra ';' outside of a functio +// SPELLING: diag-presumed.c:13:1: error: extra ';' outside of a functio + +# 1 "thing1.cc" 1 +# 1 "thing1.h" 1 +# 1 "systemheader.h" 1 3 +; +// No diagnostic here: we're in a system header, even if we're using spelling +// locations for the diagnostics.. +// PRESUMED-NOT: extra ';' +// SPELLING-NOT: extra ';' + +another error; +// PRESUMED: included from {{.*}}diag-presumed.c:112: +// PRESUMED: from thing1.cc:1: +// PRESUMED: from thing1.h:1: +// PRESUMED: systemheader.h:7:1: error: unknown type name 'another' + +// SPELLING-NOT: included from +// SPELLING: diag-presumed.c:26:1: error: unknown type name 'another' + +# 1 "thing1.h" 2 +# 1 "thing1.cc" 2 |

