[PATCH] Change semantics of regex expectations in the diagnostic verifier
Hans Wennborg
hans at chromium.org
Wed Dec 11 12:07:10 PST 2013
Hi rsmith, rnk,
Currently, 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.)
The motivation for this change is that I plan to touch a bunch of tests that print out function types, and I don't want to have to add tons of escaping to do some regex stuff there.
http://llvm-reviews.chandlerc.com/D2388
Files:
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D2388.1.patch
Type: text/x-patch
Size: 27710 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131211/84ff43f4/attachment.bin>
More information about the cfe-commits
mailing list