]> granicus.if.org Git - clang/commit
Change semantics of regex expectations in the diagnostic verifier
authorHans Wennborg <hans@hanshq.net>
Wed, 11 Dec 2013 23:40:50 +0000 (23:40 +0000)
committerHans Wennborg <hans@hanshq.net>
Wed, 11 Dec 2013 23:40:50 +0000 (23:40 +0000)
commit1f993631af69af219f347517e956cf4f06036bf2
tree472aa2083777e0fbb608450ab5ba2229d4cd24ab
parentbac56cd4f67d3a7e40887ead272ab01533bf15c7
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
24 files changed:
include/clang/Basic/DiagnosticFrontendKinds.td
include/clang/Frontend/VerifyDiagnosticConsumer.h
lib/Frontend/VerifyDiagnosticConsumer.cpp
test/Analysis/analyzer-stats.c
test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp
test/CXX/drs/dr14xx.cpp
test/CXX/special/class.copy/implicit-move.cpp
test/Lexer/hexfloat.cpp
test/Misc/verify.c
test/Parser/attributes.mm
test/Sema/format-strings-scanf.c
test/Sema/ms-wchar.c
test/Sema/thread-specifier.c
test/SemaCXX/addr-of-overloaded-function.cpp
test/SemaCXX/member-expr.cpp
test/SemaCXX/nested-name-spec.cpp
test/SemaCXX/operator-arrow-depth.cpp
test/SemaCXX/pr13394-crash-on-invalid.cpp
test/SemaCXX/qualified-id-lookup.cpp
test/SemaCXX/typo-correction-pt2.cpp
test/SemaCXX/typo-correction.cpp
test/SemaTemplate/dependent-names.cpp
test/SemaTemplate/ms-lookup-template-base-classes.cpp
test/SemaTemplate/typename-specifier.cpp