Hi Mark, Thanks for working on this! Sorry about overlooking this bug.
LGTM! I previously differentiated between keyword and value to make it obvious that a vector width can’t be used with vectorize() and a enable/disable can’t be used with vectorize_width(). But the expected string should do that still. Tyler On Jun 18, 2014, at 11:10 AM, Mark Heffernan <[email protected]> wrote: > Hi TylerNowicki, aaron.ballman, > > 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' > > In the last example above, the old behavior isn't incorrect. I made the > change as it simplified the code a bit and made the message consistent > regardless of what the argument is (rather than just printing the argument if > it is an identifier). Happy to change it back if anyone thinks it's a step > backwards. > > http://reviews.llvm.org/D4197 > > Files: > include/clang/Basic/DiagnosticParseKinds.td > include/clang/Basic/DiagnosticSemaKinds.td > lib/Parse/ParsePragma.cpp > lib/Sema/SemaStmtAttr.cpp > test/Parser/pragma-loop.cpp > <D4197.10579.patch> _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
