From 69e3842d603239be1fa3bf53d7bc55d16e4214cf Mon Sep 17 00:00:00 2001 From: peter klausler Date: Tue, 24 Apr 2018 15:25:11 -0700 Subject: [PATCH] [flang] Resolve old TODO about needless Indirection<>. Original-commit: flang-compiler/f18@5f289209c4ec76be905dd76d649a725af3998e8d Reviewed-on: https://github.com/flang-compiler/f18/pull/73 Tree-same-pre-rewrite: false --- flang/lib/parser/grammar.h | 6 +++--- flang/lib/parser/parse-tree.h | 7 +++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/flang/lib/parser/grammar.h b/flang/lib/parser/grammar.h index e0aaeaaf8ee8..0f8756883e1d 100644 --- a/flang/lib/parser/grammar.h +++ b/flang/lib/parser/grammar.h @@ -853,9 +853,9 @@ TYPE_CONTEXT_PARSER("array constructor"_en_US, "(/" >> Parser{} / "/)" || bracketed(Parser{}))) // R770 ac-spec -> type-spec :: | [type-spec ::] ac-value-list -TYPE_PARSER(construct(maybe(indirect(typeSpec) / "::"), - nonemptyList(Parser{})) || - construct(indirect(typeSpec) / "::")) +TYPE_PARSER(construct( + maybe(typeSpec / "::"), nonemptyList(Parser{})) || + construct(typeSpec / "::")) // R773 ac-value -> expr | ac-implied-do TYPE_PARSER( diff --git a/flang/lib/parser/parse-tree.h b/flang/lib/parser/parse-tree.h index 8d2f836db559..3af60504d568 100644 --- a/flang/lib/parser/parse-tree.h +++ b/flang/lib/parser/parse-tree.h @@ -1155,11 +1155,10 @@ struct AcValue { // R770 ac-spec -> type-spec :: | [type-spec ::] ac-value-list struct AcSpec { BOILERPLATE(AcSpec); - AcSpec(std::optional> &&ts, std::list &&xs) + AcSpec(std::optional &&ts, std::list &&xs) : type(std::move(ts)), values(std::move(xs)) {} - explicit AcSpec(Indirection &&ts) : type{std::move(ts)} {} - // TODO need Indirection here to compile, don't know why - std::optional> type; + explicit AcSpec(TypeSpec &&ts) : type{std::move(ts)} {} + std::optional type; std::list values; };