summaryrefslogtreecommitdiff
path: root/include/clang/Basic/DiagnosticParseKinds.td
diff options
context:
space:
mode:
authorEli Bendersky <eliben@google.com>2014-06-19 18:30:15 +0000
committerEli Bendersky <eliben@google.com>2014-06-19 18:30:15 +0000
commit427d5c99b0408e4ca472b8a65d1fbd15261d7d1a (patch)
tree264d36c20c2f3a38005efbeba0deee78dc23f8ce /include/clang/Basic/DiagnosticParseKinds.td
parent47d52751cfb3a2c0491789ccdf097879d92ad0d6 (diff)
downloadclang-427d5c99b0408e4ca472b8a65d1fbd15261d7d1a.tar.gz
clang-427d5c99b0408e4ca472b8a65d1fbd15261d7d1a.tar.bz2
clang-427d5c99b0408e4ca472b8a65d1fbd15261d7d1a.tar.xz
Fix PR20069: bad loop pragma arguments crash FE
This patch fixes a crash when handling malformed arguments to loop pragmas such as: "#pragma clang loop vectorize(()". Essentially any argument which is not an identifier or constant resulted in a crash. This patch also changes a couple of the error messages which weren't quite correct. New behavior with this patch vs old behavior: #pragma clang loop vectorize(1) OLD: error: missing keyword; expected 'enable' or 'disable' NEW: error: invalid argument; expected 'enable' or 'disable' #pragma clang loop vectorize() OLD: error: expected ')' NEW: error: missing argument to loop pragma 'vectorize' #pragma clang loop vectorize_width(bad) OLD: error: missing value; expected a positive integer value NEW: error: invalid argument; expected a positive integer value #pragma clang loop vectorize(bad) OLD: invalid keyword 'bad'; expected 'enable' or 'disable' NEW: error: invalid argument; expected 'enable' or 'disable' http://reviews.llvm.org/D4197 Patch by Mark Heffernan git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211292 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/DiagnosticParseKinds.td')
-rw-r--r--include/clang/Basic/DiagnosticParseKinds.td2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/clang/Basic/DiagnosticParseKinds.td b/include/clang/Basic/DiagnosticParseKinds.td
index 874e0e2049..bc097e0bf3 100644
--- a/include/clang/Basic/DiagnosticParseKinds.td
+++ b/include/clang/Basic/DiagnosticParseKinds.td
@@ -909,6 +909,8 @@ def err_omp_more_one_clause : Error<
def err_pragma_loop_invalid_option : Error<
"%select{invalid|missing}0 option%select{ %1|}0; expected vectorize, "
"vectorize_width, interleave, interleave_count, unroll, or unroll_count">;
+def err_pragma_loop_missing_argument : Error<
+ "missing argument to loop pragma %0">;
} // end of Parse Issue category.
let CategoryName = "Modules Issue" in {