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