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

Bataev, Alexey a.bataev at hotmail.com
Wed Jul 9 03:37:03 PDT 2014


Thanks,
Fixed in revision 212601.

Best regards,
Alexey Bataev
=============
Software Engineer
Intel Compiler Team

9 Июль 2014 г. 12:47:02, Timur Iskhodzhanov писал:
> 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