|
@@ -292,6 +292,7 @@ namespace {
|
|
|
void VisitCapturedStmt(const CapturedStmt *Node);
|
|
|
|
|
|
// OpenMP
|
|
|
+ void Visit(const OMPClause *C);
|
|
|
void VisitOMPExecutableDirective(const OMPExecutableDirective *Node);
|
|
|
|
|
|
// Exprs
|
|
@@ -1448,29 +1449,18 @@ void ASTDumper::VisitCapturedStmt(const CapturedStmt *Node) {
|
|
|
// OpenMP dumping methods.
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
+void ASTDumper::Visit(const OMPClause *C) {
|
|
|
+ dumpChild([=] {
|
|
|
+ NodeDumper.Visit(C);
|
|
|
+ for (auto *S : C->children())
|
|
|
+ dumpStmt(S);
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
void ASTDumper::VisitOMPExecutableDirective(
|
|
|
const OMPExecutableDirective *Node) {
|
|
|
- for (auto *C : Node->clauses()) {
|
|
|
- dumpChild([=] {
|
|
|
- if (!C) {
|
|
|
- ColorScope Color(OS, ShowColors, NullColor);
|
|
|
- OS << "<<<NULL>>> OMPClause";
|
|
|
- return;
|
|
|
- }
|
|
|
- {
|
|
|
- ColorScope Color(OS, ShowColors, AttrColor);
|
|
|
- StringRef ClauseName(getOpenMPClauseName(C->getClauseKind()));
|
|
|
- OS << "OMP" << ClauseName.substr(/*Start=*/0, /*N=*/1).upper()
|
|
|
- << ClauseName.drop_front() << "Clause";
|
|
|
- }
|
|
|
- NodeDumper.dumpPointer(C);
|
|
|
- NodeDumper.dumpSourceRange(SourceRange(C->getBeginLoc(), C->getEndLoc()));
|
|
|
- if (C->isImplicit())
|
|
|
- OS << " <implicit>";
|
|
|
- for (auto *S : C->children())
|
|
|
- dumpStmt(S);
|
|
|
- });
|
|
|
- }
|
|
|
+ for (const auto *C : Node->clauses())
|
|
|
+ Visit(C);
|
|
|
}
|
|
|
|
|
|
//===----------------------------------------------------------------------===//
|