r212592 - [OPENMP] Improved code of DataRecursiveASTVisitor and RecursiveASTVisitor for OpenMP constructs per Tobias Grosser comments.

Timur Iskhodzhanov timurrrr at google.com
Wed Jul 9 01:47:02 PDT 2014


FYI
FAILED: "C:/Program Files (x86)/CMake 2.8/bin/cmcldeps.exe" CXX
tools\clang\lib\ARCMigrate\TransProtectedScope.cpp
"tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransProtectedScope.cpp.obj.d"
tools\clang\lib\ARCMigrate\CMakeFiles\clangARCMigrate.dir\TransProtectedScope.cpp.obj
 "Note: including file: "  "C:/Program Files (x86)/Microsoft Visual
Studio 12.0/VC/bin/cl.exe" C:\PROGRA~2\MICROS~3.0\VC\bin\cl.exe
/nologo /TP /DWIN32 /D_WINDOWS /W3   /MD /O2 /Ob2
-Itools\clang\lib\ARCMigrate -Itools\clang\lib\ARCMigrate
-Itools\clang\include -Itools\clang\include -Iinclude -Iinclude
-UNDEBUG -wd4146 -wd4180 -wd4244 -wd4267 -wd4291 -wd4345 -wd4351
-wd4355 -wd4503 -wd4624 -wd4722 -wd4800 -w14062 -we4238 /EHs-c- /GR-
-DCLANG_ENABLE_ARCMT -DCLANG_ENABLE_REWRITER
-DCLANG_ENABLE_STATIC_ANALYZER -DGTEST_HAS_RTTI=0
-D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE
-D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE
-D_SCL_SECURE_NO_WARNINGS -D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
/Fotools\clang\lib\ARCMigrate\CMakeFiles\clangARCMigrate.dir\TransProtectedScope.cpp.obj
/Fdtools\clang\lib\ARCMigrate\CMakeFiles\clangARCMigrate.dir/ /FS -c
tools\clang\lib\ARCMigrate\TransProtectedScope.cpp
tools\clang\include\clang/AST/RecursiveASTVisitor.h(2298) : error
C2059: syntax error : '}'


        tools\clang\include\clang/AST/RecursiveASTVisitor.h(2297) :
while compiling class template member function 'bool
clang::RecursiveASTVisitor<`anonymous-namespace'::LocalRefsCollector>::TraverseOMPExecutableDirective(clang::OMPExecutableDirective
*)'


        tools\clang\include\clang/AST/RecursiveASTVisitor.h(2310) :
see reference to function template instantiation 'bool
clang::RecursiveASTVisitor<`anonymous-namespace'::LocalRefsCollector>::TraverseOMPExecutableDirective(clang::OMPExecutableDirective
*)' being compiled


        tools\clang\include\clang/AST/RecursiveASTVisitor.h(1891) :
while compiling class template member function 'bool
clang::RecursiveASTVisitor<`anonymous-namespace'::LocalRefsCollector>::TraverseGCCAsmStmt(clang::GCCAsmStmt
*)'


        tools\clang\include\clang/AST/StmtNodes.inc(27) : see
reference to function template instantiation 'bool
clang::RecursiveASTVisitor<`anonymous-namespace'::LocalRefsCollector>::TraverseGCCAsmStmt(clang::GCCAsmStmt
*)' being compiled


        tools\clang\include\clang/AST/RecursiveASTVisitor.h(553) :
while compiling class template member function 'bool
clang::RecursiveASTVisitor<`anonymous-namespace'::LocalRefsCollector>::TraverseStmt(clang::Stmt
*)'


        tools\clang\lib\ARCMigrate\TransProtectedScope.cpp(108) : see
reference to function template instantiation 'bool
clang::RecursiveASTVisitor<`anonymous-namespace'::LocalRefsCollector>::TraverseStmt(clang::Stmt
*)' being compiled


        tools\clang\lib\ARCMigrate\TransProtectedScope.cpp(26) : see
reference to class template instantiation
'clang::RecursiveASTVisitor<`anonymous-namespace'::LocalRefsCollector>'
being compiled

2014-07-09 12:00 GMT+04:00 Alexey Bataev <a.bataev at hotmail.com>:
> Author: abataev
> Date: Wed Jul  9 03:00:46 2014
> New Revision: 212592
>
> URL: http://llvm.org/viewvc/llvm-project?rev=212592&view=rev
> Log:
> [OPENMP] Improved code of DataRecursiveASTVisitor and RecursiveASTVisitor for OpenMP constructs per Tobias Grosser comments.
>
> Modified:
>     cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h
>     cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
>
> Modified: cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h?rev=212592&r1=212591&r2=212592&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h (original)
> +++ cfe/trunk/include/clang/AST/DataRecursiveASTVisitor.h Wed Jul  9 03:00:46 2014
> @@ -423,12 +423,12 @@ private:
>    bool TraverseDeclContextHelper(DeclContext *DC);
>    bool TraverseFunctionHelper(FunctionDecl *D);
>    bool TraverseVarHelper(VarDecl *D);
> -  bool TraverseOMPClause(OMPClause *C);
>    bool TraverseOMPExecutableDirective(OMPExecutableDirective *S);
> +  bool TraverseOMPClause(OMPClause *C);
>  #define OPENMP_CLAUSE(Name, Class) bool Visit##Class(Class *C);
>  #include "clang/Basic/OpenMPKinds.def"
>    /// \brief Process clauses with list of variables.
> -  template <typename T> void VisitOMPClauseList(T *Node);
> +  template <typename T> bool VisitOMPClauseList(T *Node);
>
>    typedef SmallVector<Stmt *, 16> StmtsTy;
>    typedef SmallVector<StmtsTy *, 4> QueuesTy;
> @@ -2273,53 +2273,34 @@ DEF_TRAVERSE_STMT(AsTypeExpr, {})
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::TraverseOMPExecutableDirective(
>      OMPExecutableDirective *S) {
> -  ArrayRef<OMPClause *> Clauses = S->clauses();
> -  for (ArrayRef<OMPClause *>::iterator I = Clauses.begin(), E = Clauses.end();
> -       I != E; ++I)
> -    if (!TraverseOMPClause(*I))
> -      return false;
> +  for (auto *C : S->clauses())
> +    TRY_TO(TraverseOMPClause(C));
>    return true;
>  }
>
> -DEF_TRAVERSE_STMT(OMPParallelDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPParallelDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPSimdDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPSimdDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPForDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPForDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPSectionsDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPSectionsDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPSectionDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPSectionDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPSingleDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPSingleDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPParallelForDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPParallelForDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPParallelSectionsDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPParallelSectionsDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
>  // OpenMP clauses.
>  template <typename Derived>
> @@ -2329,9 +2310,11 @@ bool RecursiveASTVisitor<Derived>::Trave
>    switch (C->getClauseKind()) {
>  #define OPENMP_CLAUSE(Name, Class)                                             \
>    case OMPC_##Name:                                                            \
> -    return getDerived().Visit##Class(static_cast<Class *>(C));
> +    TRY_TO(Visit##Class(static_cast<Class *>(C)));                             \
> +    break;
>  #include "clang/Basic/OpenMPKinds.def"
> -  default:
> +  case OMPC_threadprivate:
> +  case OMPC_unknown:
>      break;
>    }
>    return true;
> @@ -2339,45 +2322,44 @@ bool RecursiveASTVisitor<Derived>::Trave
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPIfClause(OMPIfClause *C) {
> -  TraverseStmt(C->getCondition());
> +  TRY_TO(TraverseStmt(C->getCondition()));
>    return true;
>  }
>
>  template <typename Derived>
>  bool
>  RecursiveASTVisitor<Derived>::VisitOMPNumThreadsClause(OMPNumThreadsClause *C) {
> -  TraverseStmt(C->getNumThreads());
> +  TRY_TO(TraverseStmt(C->getNumThreads()));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPSafelenClause(OMPSafelenClause *C) {
> -  TraverseStmt(C->getSafelen());
> +  TRY_TO(TraverseStmt(C->getSafelen()));
>    return true;
>  }
>
>  template <typename Derived>
>  bool
>  RecursiveASTVisitor<Derived>::VisitOMPCollapseClause(OMPCollapseClause *C) {
> -  TraverseStmt(C->getNumForLoops());
> +  TRY_TO(TraverseStmt(C->getNumForLoops()));
>    return true;
>  }
>
>  template <typename Derived>
> -bool RecursiveASTVisitor<Derived>::VisitOMPDefaultClause(OMPDefaultClause *C) {
> +bool RecursiveASTVisitor<Derived>::VisitOMPDefaultClause(OMPDefaultClause *) {
>    return true;
>  }
>
>  template <typename Derived>
> -bool
> -RecursiveASTVisitor<Derived>::VisitOMPProcBindClause(OMPProcBindClause *C) {
> +bool RecursiveASTVisitor<Derived>::VisitOMPProcBindClause(OMPProcBindClause *) {
>    return true;
>  }
>
>  template <typename Derived>
>  bool
>  RecursiveASTVisitor<Derived>::VisitOMPScheduleClause(OMPScheduleClause *C) {
> -  TraverseStmt(C->getChunkSize());
> +  TRY_TO(TraverseStmt(C->getChunkSize()));
>    return true;
>  }
>
> @@ -2393,61 +2375,62 @@ bool RecursiveASTVisitor<Derived>::Visit
>
>  template <typename Derived>
>  template <typename T>
> -void RecursiveASTVisitor<Derived>::VisitOMPClauseList(T *Node) {
> -  for (auto *I : Node->varlists())
> -    TraverseStmt(I);
> +bool RecursiveASTVisitor<Derived>::VisitOMPClauseList(T *Node) {
> +  for (auto *E : Node->varlists())
> +    TRY_TO(TraverseStmt(E));
> +  return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPPrivateClause(OMPPrivateClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPFirstprivateClause(
>      OMPFirstprivateClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPLastprivateClause(
>      OMPLastprivateClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPSharedClause(OMPSharedClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPLinearClause(OMPLinearClause *C) {
> -  VisitOMPClauseList(C);
> -  TraverseStmt(C->getStep());
> +  TRY_TO(TraverseStmt(C->getStep()));
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPAlignedClause(OMPAlignedClause *C) {
> -  VisitOMPClauseList(C);
> -  TraverseStmt(C->getAlignment());
> +  TRY_TO(TraverseStmt(C->getAlignment()));
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPCopyinClause(OMPCopyinClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPCopyprivateClause(
>      OMPCopyprivateClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
> @@ -2456,7 +2439,7 @@ bool
>  RecursiveASTVisitor<Derived>::VisitOMPReductionClause(OMPReductionClause *C) {
>    TRY_TO(TraverseNestedNameSpecifierLoc(C->getQualifierLoc()));
>    TRY_TO(TraverseDeclarationNameInfo(C->getNameInfo()));
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>
> Modified: cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/RecursiveASTVisitor.h?rev=212592&r1=212591&r2=212592&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/RecursiveASTVisitor.h (original)
> +++ cfe/trunk/include/clang/AST/RecursiveASTVisitor.h Wed Jul  9 03:00:46 2014
> @@ -428,12 +428,12 @@ private:
>    bool TraverseDeclContextHelper(DeclContext *DC);
>    bool TraverseFunctionHelper(FunctionDecl *D);
>    bool TraverseVarHelper(VarDecl *D);
> -  bool TraverseOMPClause(OMPClause *C);
>    bool TraverseOMPExecutableDirective(OMPExecutableDirective *S);
> +  bool TraverseOMPClause(OMPClause *C);
>  #define OPENMP_CLAUSE(Name, Class) bool Visit##Class(Class *C);
>  #include "clang/Basic/OpenMPKinds.def"
>    /// \brief Process clauses with list of variables.
> -  template <typename T> void VisitOMPClauseList(T *Node);
> +  template <typename T> bool VisitOMPClauseList(T *Node);
>
>    struct EnqueueJob {
>      Stmt *S;
> @@ -2295,53 +2295,34 @@ DEF_TRAVERSE_STMT(AsTypeExpr, {})
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::TraverseOMPExecutableDirective(
>      OMPExecutableDirective *S) {
> -  ArrayRef<OMPClause *> Clauses = S->clauses();
> -  for (ArrayRef<OMPClause *>::iterator I = Clauses.begin(), E = Clauses.end();
> -       I != E; ++I)
> -    if (!TraverseOMPClause(*I))
> -      return false;
> +  for (auto *C : S->clauses())
> +    TRY_TO(TraverseOMPClause(C));
>    return true;
>  }
>
> -DEF_TRAVERSE_STMT(OMPParallelDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPParallelDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPSimdDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPSimdDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPForDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPForDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPSectionsDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPSectionsDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPSectionDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPSectionDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPSingleDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPSingleDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPParallelForDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPParallelForDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
> -DEF_TRAVERSE_STMT(OMPParallelSectionsDirective, {
> -  if (!TraverseOMPExecutableDirective(S))
> -    return false;
> -})
> +DEF_TRAVERSE_STMT(OMPParallelSectionsDirective,
> +                  { TRY_TO(TraverseOMPExecutableDirective(S)); })
>
>  // OpenMP clauses.
>  template <typename Derived>
> @@ -2351,9 +2332,11 @@ bool RecursiveASTVisitor<Derived>::Trave
>    switch (C->getClauseKind()) {
>  #define OPENMP_CLAUSE(Name, Class)                                             \
>    case OMPC_##Name:                                                            \
> -    return getDerived().Visit##Class(static_cast<Class *>(C));
> +    TRY_TO(Visit##Class(static_cast<Class *>(C)));                             \
> +    break;
>  #include "clang/Basic/OpenMPKinds.def"
> -  default:
> +  case OMPC_threadprivate:
> +  case OMPC_unknown:
>      break;
>    }
>    return true;
> @@ -2361,45 +2344,44 @@ bool RecursiveASTVisitor<Derived>::Trave
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPIfClause(OMPIfClause *C) {
> -  TraverseStmt(C->getCondition());
> +  TRY_TO(TraverseStmt(C->getCondition()));
>    return true;
>  }
>
>  template <typename Derived>
>  bool
>  RecursiveASTVisitor<Derived>::VisitOMPNumThreadsClause(OMPNumThreadsClause *C) {
> -  TraverseStmt(C->getNumThreads());
> +  TRY_TO(TraverseStmt(C->getNumThreads()));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPSafelenClause(OMPSafelenClause *C) {
> -  TraverseStmt(C->getSafelen());
> +  TRY_TO(TraverseStmt(C->getSafelen()));
>    return true;
>  }
>
>  template <typename Derived>
>  bool
>  RecursiveASTVisitor<Derived>::VisitOMPCollapseClause(OMPCollapseClause *C) {
> -  TraverseStmt(C->getNumForLoops());
> +  TRY_TO(TraverseStmt(C->getNumForLoops()));
>    return true;
>  }
>
>  template <typename Derived>
> -bool RecursiveASTVisitor<Derived>::VisitOMPDefaultClause(OMPDefaultClause *C) {
> +bool RecursiveASTVisitor<Derived>::VisitOMPDefaultClause(OMPDefaultClause *) {
>    return true;
>  }
>
>  template <typename Derived>
> -bool
> -RecursiveASTVisitor<Derived>::VisitOMPProcBindClause(OMPProcBindClause *C) {
> +bool RecursiveASTVisitor<Derived>::VisitOMPProcBindClause(OMPProcBindClause *) {
>    return true;
>  }
>
>  template <typename Derived>
>  bool
>  RecursiveASTVisitor<Derived>::VisitOMPScheduleClause(OMPScheduleClause *C) {
> -  TraverseStmt(C->getChunkSize());
> +  TRY_TO(TraverseStmt(C->getChunkSize()));
>    return true;
>  }
>
> @@ -2415,61 +2397,62 @@ bool RecursiveASTVisitor<Derived>::Visit
>
>  template <typename Derived>
>  template <typename T>
> -void RecursiveASTVisitor<Derived>::VisitOMPClauseList(T *Node) {
> -  for (auto *I : Node->varlists())
> -    TraverseStmt(I);
> +bool RecursiveASTVisitor<Derived>::VisitOMPClauseList(T *Node) {
> +  for (auto *E : Node->varlists())
> +    TRY_TO(TraverseStmt(E));
> +  return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPPrivateClause(OMPPrivateClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPFirstprivateClause(
>      OMPFirstprivateClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPLastprivateClause(
>      OMPLastprivateClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPSharedClause(OMPSharedClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPLinearClause(OMPLinearClause *C) {
> -  VisitOMPClauseList(C);
> -  TraverseStmt(C->getStep());
> +  TRY_TO(TraverseStmt(C->getStep()));
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPAlignedClause(OMPAlignedClause *C) {
> -  VisitOMPClauseList(C);
> -  TraverseStmt(C->getAlignment());
> +  TRY_TO(TraverseStmt(C->getAlignment()));
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPCopyinClause(OMPCopyinClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>  template <typename Derived>
>  bool RecursiveASTVisitor<Derived>::VisitOMPCopyprivateClause(
>      OMPCopyprivateClause *C) {
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
> @@ -2478,7 +2461,7 @@ bool
>  RecursiveASTVisitor<Derived>::VisitOMPReductionClause(OMPReductionClause *C) {
>    TRY_TO(TraverseNestedNameSpecifierLoc(C->getQualifierLoc()));
>    TRY_TO(TraverseDeclarationNameInfo(C->getNameInfo()));
> -  VisitOMPClauseList(C);
> +  TRY_TO(VisitOMPClauseList(C));
>    return true;
>  }
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list