diff options
author | Hans Wennborg <hans@hanshq.net> | 2013-12-11 23:40:50 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2013-12-11 23:40:50 +0000 |
commit | 1f993631af69af219f347517e956cf4f06036bf2 (patch) | |
tree | 472aa2083777e0fbb608450ab5ba2229d4cd24ab /test/Parser/attributes.mm | |
parent | bac56cd4f67d3a7e40887ead272ab01533bf15c7 (diff) |
Change semantics of regex expectations in the diagnostic verifier
Previously, a line like
// expected-error-re {{foo}}
treats the entirety of foo as a regex. This is inconvenient when matching type
names containing regex characters. For example, to match
"void *(class test8::A::*)(void)" inside such a regex, one would have to type
"void \*\(class test8::A::\*\)\(void\)".
This patch changes the semantics of expected-error-re to only treat the parts
of the directive wrapped in double curly braces as regexes. This avoids the
escaping problem and leads to nicer patterns for those cases; see e.g. the
change to test/Sema/format-strings-scanf.c.
(The balanced search for closing }} of a directive also makes us handle the
full directive in test\SemaCXX\constexpr-printing.cpp:41 and :53.)
Differential Revision: http://llvm-reviews.chandlerc.com/D2388
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197092 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Parser/attributes.mm')
-rw-r--r-- | test/Parser/attributes.mm | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/test/Parser/attributes.mm b/test/Parser/attributes.mm index d92e3d35cf..024606bed3 100644 --- a/test/Parser/attributes.mm +++ b/test/Parser/attributes.mm @@ -14,11 +14,11 @@ EXP class C2 {}; // expected-warning {{attribute 'visibility' is ignored, place @interface EXP I @end // expected-error {{postfix attributes are not allowed on Objective-C directives, place them in front of '@interface'}} EXP @interface I2 @end -@implementation EXP I @end // expected-error-re {{postfix attributes are not allowed on Objective-C directives$}} +@implementation EXP I @end // expected-error-re {{postfix attributes are not allowed on Objective-C directives{{$}}}} // FIXME: Prefix attribute recovery skips until ';' EXP @implementation I2 @end; // expected-error {{prefix attribute must be followed by an interface or protocol}} -@class EXP OC; // expected-error-re {{postfix attributes are not allowed on Objective-C directives$}} +@class EXP OC; // expected-error-re {{postfix attributes are not allowed on Objective-C directives{{$}}}} EXP @class OC2; // expected-error {{prefix attribute must be followed by an interface or protocol}} @protocol EXP P @end // expected-error {{postfix attributes are not allowed on Objective-C directives, place them in front of '@protocol'}} |