]> granicus.if.org Git - clang/commitdiff
[OPENMP] Additional comments for implicit 'flush' clause + removed unused parameter...
authorAlexey Bataev <a.bataev@hotmail.com>
Tue, 29 Jul 2014 09:17:39 +0000 (09:17 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Tue, 29 Jul 2014 09:17:39 +0000 (09:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214172 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/OpenMPClause.h
lib/Basic/OpenMPKinds.cpp

index 5f05b449deba58947525ddd5a4c8f4d6bb5d32b0..666a9980368ab4ed5d4f5bce4fb024c096697d57 100644 (file)
@@ -61,7 +61,7 @@ public:
   ConstStmtRange children() const {
     return const_cast<OMPClause *>(this)->children();
   }
-  static bool classof(const OMPClause *T) { return true; }
+  static bool classof(const OMPClause *) { return true; }
 };
 
 /// \brief This represents clauses with the list of variables like 'private',
@@ -1537,13 +1537,17 @@ public:
   }
 };
 
-/// \brief This represents pseudo clause 'flush' for the '#pragma omp flush'
+/// \brief This represents implicit clause 'flush' for the '#pragma omp flush'
 /// directive.
+/// This clause does not exist by itself, it can be only as a part of 'omp
+/// flush' directive. This clause is introduced to keep the original structure
+/// of \a OMPExecutableDirective class and its derivatives and to use the
+/// existing infrastructure of clauses with the list of variables.
 ///
 /// \code
 /// #pragma omp flush(a,b)
 /// \endcode
-/// In this example directive '#pragma omp flush' has pseudo clause 'flush'
+/// In this example directive '#pragma omp flush' has implicit clause 'flush'
 /// with the variables 'a' and 'b'.
 ///
 class OMPFlushClause : public OMPVarListClause<OMPFlushClause> {
@@ -1600,3 +1604,4 @@ public:
 } // end namespace clang
 
 #endif
+
index 7b277b477d5b09fbd6e92beeb1b8b56b1fdccfa9..65f29598db314274bb2be0af334f53e62c36debc 100644 (file)
@@ -46,6 +46,10 @@ const char *clang::getOpenMPDirectiveName(OpenMPDirectiveKind Kind) {
 }
 
 OpenMPClauseKind clang::getOpenMPClauseKind(StringRef Str) {
+  // 'flush' clause cannot be specified explicitly, because this is an implicit
+  // clause for 'flush' directive. If the 'flush' clause is explicitly specified
+  // the Parser should generate a warning about extra tokens at the end of the
+  // directive.
   if (Str == "flush")
     return OMPC_unknown;
   return llvm::StringSwitch<OpenMPClauseKind>(Str)