[PATCH] OpenMP threadprivate with qualified names.

Alexey Bataev a.bataev at hotmail.com
Wed Apr 24 22:06:52 PDT 2013



================
Comment at: include/clang/Basic/DiagnosticSemaKinds.td:6319
@@ +6318,3 @@
+def err_omp_threadprivate_incomplete_type : Error<
+  "a threadprivate variable with incomplete type %0">;
+} // end of OpenMP category
----------------
Doug Gregor wrote:
> I suggest dropping the leading "a ". It doesn't add anything.
Ok, removed.

================
Comment at: lib/Parse/ParseOpenMP.cpp:81
@@ +80,3 @@
+  bool LParen = true;
+  if (Tok.isNot(tok::l_paren)) {
+    Diag(Tok, diag::err_expected_lparen_after)
----------------
Doug Gregor wrote:
> Why did you remove the BalancedDelimiterTracker?
BalancedDelimiterTracker is not suitable for parsing constructs without final semicolon. It expects semicolon at the end of the construct. But we use special annotation token 'annot_openmp_end'. If there is an error found during parsing (for example, no closing paren) it skips all tokens until the semicolon is found, not this annotation token. That's why I can't use BalancedDelimiterTracker.

================
Comment at: lib/Sema/SemaOpenMP.cpp:93
@@ +92,3 @@
+    Diag(VD->getLocation(), IsDecl ? diag::note_previous_decl :
+                                     diag::note_defined_here) << VD;
+    return ExprError();
----------------
Doug Gregor wrote:
> Please wrap the IsDecl ? argument to the next line. The formatting here is a bit too unique.
Ok


http://llvm-reviews.chandlerc.com/D717



More information about the cfe-commits mailing list