From e012a13a0d3955aa17e1bf8d8617b6e1ec4c9160 Mon Sep 17 00:00:00 2001 From: peter klausler Date: Tue, 25 Jun 2019 15:16:21 -0700 Subject: [PATCH] [flang] Make unparsing of typed Exprs conditional when unparsing to pgf90 Original-commit: flang-compiler/f18@3b79c290cd4cb5299b931d4b6e051cb677cffab4 Reviewed-on: https://github.com/flang-compiler/f18/pull/531 Tree-same-pre-rewrite: false --- flang/tools/f18/f18.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/flang/tools/f18/f18.cc b/flang/tools/f18/f18.cc index 96c60cb..996bf58 100644 --- a/flang/tools/f18/f18.cc +++ b/flang/tools/f18/f18.cc @@ -98,6 +98,7 @@ struct DriverOptions { bool debugResolveNames{false}; bool debugSemantics{false}; bool measureTree{false}; + bool unparseTypedExprsToPGF90{false}; std::vector pgf90Args; const char *prefix{nullptr}; }; @@ -274,7 +275,8 @@ std::string CompileFortran(std::string path, Fortran::parser::Options options, Unparse(tmpSource, parseTree, driver.encoding, true /*capitalize*/, options.features.IsEnabled( Fortran::parser::LanguageFeature::BackslashEscapes), - nullptr /* action before each statement */, &unparseExpression); + nullptr /* action before each statement */, + driver.unparseTypedExprsToPGF90 ? &unparseExpression : nullptr); Fortran::evaluate::formatForPGF90 = false; } @@ -429,6 +431,8 @@ int main(int argc, char *const argv[]) { driver.dumpUnparse = true; } else if (arg == "-funparse-with-symbols") { driver.dumpUnparseWithSymbols = true; + } else if (arg == "-funparse-typed-exprs-to-pgf90") { + driver.unparseTypedExprsToPGF90 = true; } else if (arg == "-fparse-only") { driver.parseOnly = true; } else if (arg == "-c") { -- 2.7.4