diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-04-13 04:33:39 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-04-13 04:33:39 +0000 |
| commit | 4e8144a0d140adf1ee07d78f3ff1ebb41790a9a3 (patch) | |
| tree | ef4ca2263636e62ca3cc0cc3bd93fc05e580bd75 /clang/test/Frontend | |
| parent | e03301a3b32d048d8975e0fe21d80489505415c8 (diff) | |
| download | bcm5719-llvm-4e8144a0d140adf1ee07d78f3ff1ebb41790a9a3.tar.gz bcm5719-llvm-4e8144a0d140adf1ee07d78f3ff1ebb41790a9a3.zip | |
[verify] Add support for location markers in directives.
A marker (matching /#[A-Za-z0-9_-]/) is specified by attaching a comment
containing the marker to the line at which the diagnostic is expected,
and then can be referenced from an expected-* directive after an @:
foo // #1
// expected-error@#1 {{undeclared identifier 'foo'}}
The intent is for markers to be used in situations where relative line
numbers are currently used, to avoid the need to renumber when the test
case is rearranged.
llvm-svn: 358326
Diffstat (limited to 'clang/test/Frontend')
| -rw-r--r-- | clang/test/Frontend/verify-marker.c | 22 | ||||
| -rw-r--r-- | clang/test/Frontend/verify-marker.h | 1 |
2 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/Frontend/verify-marker.c b/clang/test/Frontend/verify-marker.c new file mode 100644 index 00000000000..7beee973246 --- /dev/null +++ b/clang/test/Frontend/verify-marker.c @@ -0,0 +1,22 @@ +// RUN: %clang_cc1 -verify %s + +#include "verify-marker.h" // expected-error@#1 {{unknown type name 'unknown_type'}} + +int x = 1; // #a +int x = 2; // #b +// expected-error@#b {{redefinition of 'x'}} +// expected-note@#a {{previous}} + +// expected-error@#unknown {{}} expected-error {{use of undefined marker '#unknown'}} + +// This is OK: there's no problem with a source file containing what looks like +// a duplicate definition of a marker if that marker is never used. +// #foo +// #foo + +// #bar expected-note {{ambiguous marker '#bar' is defined here}} +// #bar expected-note {{ambiguous marker '#bar' is defined here}} +// expected-error@#bar 0-1{{oops}} expected-error{{reference to marker '#bar' is ambiguous}} + +// expected-error@#forward_ref {{undeclared identifier 'future'}} +int y = future; // #forward_ref diff --git a/clang/test/Frontend/verify-marker.h b/clang/test/Frontend/verify-marker.h new file mode 100644 index 00000000000..04bd3884979 --- /dev/null +++ b/clang/test/Frontend/verify-marker.h @@ -0,0 +1 @@ +unknown_type x; // #1 |

