[flang-commits] [flang] [flang]Accept directive inside type definition (PR #87804)
Mats Petersson via flang-commits
flang-commits at lists.llvm.org
Fri Apr 5 09:47:17 PDT 2024
https://github.com/Leporacanthicus created https://github.com/llvm/llvm-project/pull/87804
None
>From b40ba856b660ab97a3c6d5d0093fea19d649da05 Mon Sep 17 00:00:00 2001
From: Mats Petersson <mats.petersson at arm.com>
Date: Fri, 5 Apr 2024 17:27:14 +0100
Subject: [PATCH] [flang]Accept directive inside type definition
---
flang/include/flang/Parser/parse-tree.h | 3 ++-
flang/lib/Parser/Fortran-parsers.cpp | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/flang/include/flang/Parser/parse-tree.h b/flang/include/flang/Parser/parse-tree.h
index 26b2e5f4e34b06..be59e3912a36fe 100644
--- a/flang/include/flang/Parser/parse-tree.h
+++ b/flang/include/flang/Parser/parse-tree.h
@@ -1097,7 +1097,8 @@ struct ProcComponentDefStmt {
// R736 component-def-stmt -> data-component-def-stmt | proc-component-def-stmt
struct ComponentDefStmt {
UNION_CLASS_BOILERPLATE(ComponentDefStmt);
- std::variant<DataComponentDefStmt, ProcComponentDefStmt, ErrorRecovery
+ std::variant<DataComponentDefStmt, ProcComponentDefStmt,
+ common::Indirection<CompilerDirective>, ErrorRecovery
// , TypeParamDefStmt -- PGI accidental extension, not enabled
>
u;
diff --git a/flang/lib/Parser/Fortran-parsers.cpp b/flang/lib/Parser/Fortran-parsers.cpp
index 21185694227d98..36510f7cd1ab6e 100644
--- a/flang/lib/Parser/Fortran-parsers.cpp
+++ b/flang/lib/Parser/Fortran-parsers.cpp
@@ -437,7 +437,9 @@ TYPE_PARSER(construct<TypeParamDecl>(name, maybe("=" >> scalarIntConstantExpr)))
TYPE_PARSER(recovery(
withMessage("expected component definition"_err_en_US,
first(construct<ComponentDefStmt>(Parser<DataComponentDefStmt>{}),
- construct<ComponentDefStmt>(Parser<ProcComponentDefStmt>{}))),
+ construct<ComponentDefStmt>(Parser<ProcComponentDefStmt>{}),
+ construct<ComponentDefStmt>(
+ indirect(Parser<CompilerDirective>{})))),
construct<ComponentDefStmt>(inStmtErrorRecovery)))
// R737 data-component-def-stmt ->
More information about the flang-commits
mailing list