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 /include/clang/Basic/DiagnosticFrontendKinds.td | |
parent | bac56cd4f67d3a7e40887ead272ab01533bf15c7 (diff) | |
download | clang-1f993631af69af219f347517e956cf4f06036bf2.tar.gz clang-1f993631af69af219f347517e956cf4f06036bf2.tar.bz2 clang-1f993631af69af219f347517e956cf4f06036bf2.tar.xz |
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 'include/clang/Basic/DiagnosticFrontendKinds.td')
-rw-r--r-- | include/clang/Basic/DiagnosticFrontendKinds.td | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/clang/Basic/DiagnosticFrontendKinds.td b/include/clang/Basic/DiagnosticFrontendKinds.td index bcf3c41cdb..65a11cbc66 100644 --- a/include/clang/Basic/DiagnosticFrontendKinds.td +++ b/include/clang/Basic/DiagnosticFrontendKinds.td @@ -77,6 +77,8 @@ def err_verify_missing_end : Error< "cannot find end ('}}') of expected %0">; def err_verify_invalid_content : Error< "invalid expected %0: %1">; +def err_verify_missing_regex : Error< + "cannot find start of regex ('{{') in %0">; def err_verify_inconsistent_diags : Error< "'%0' diagnostics %select{expected|seen}1 but not %select{seen|expected}1: " "%2">; |