summaryrefslogtreecommitdiff
path: root/include/clang/Basic/DiagnosticFrontendKinds.td
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2013-12-11 23:40:50 +0000
committerHans Wennborg <hans@hanshq.net>2013-12-11 23:40:50 +0000
commit1f993631af69af219f347517e956cf4f06036bf2 (patch)
tree472aa2083777e0fbb608450ab5ba2229d4cd24ab /include/clang/Basic/DiagnosticFrontendKinds.td
parentbac56cd4f67d3a7e40887ead272ab01533bf15c7 (diff)
downloadclang-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.td2
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">;