[flang] replace GenericExprWrapper with Expr<SomeType>
authorEric Schweitz <eschweitz@nvidia.com>
Tue, 19 Mar 2019 17:33:03 +0000 (10:33 -0700)
committerEric <eschweitz@nvidia.com>
Sat, 23 Mar 2019 18:14:20 +0000 (11:14 -0700)
Original-commit: flang-compiler/f18@0821d00cb8b7499a7e98f4f402cf6b7ed29a825d
Reviewed-on: https://github.com/flang-compiler/f18/pull/354
Tree-same-pre-rewrite: false

flang/lib/FIR/afforestation.cc
flang/lib/FIR/common.h
flang/lib/FIR/statements.cc

index 242a16b..f30262f 100644 (file)
@@ -25,9 +25,9 @@
 
 namespace Fortran::FIR {
 namespace {
-Expression *ExprRef(const parser::Expr &a) { return a.typedExpr.get(); }
+Expression *ExprRef(const parser::Expr &a) { return a.typedExpr.get()->v; }
 Expression *ExprRef(const common::Indirection<parser::Expr> &a) {
-  return a.value().typedExpr.get();
+  return a.value().typedExpr.get()->v;
 }
 
 struct LinearOp;
index cb964a3..05d3664 100644 (file)
@@ -66,7 +66,7 @@ struct Attribute {
 using FunctionType = evaluate::SomeType;  // TODO: what should this be?
 using AttributeList = std::vector<Attribute>;
 enum struct LinkageTypes { Public, Hidden, External };
-using Expression = evaluate::GenericExprWrapper;
+using Expression = evaluate::Expr<evaluate::SomeType>;
 using Variable = const semantics::Symbol *;
 using PathVariable = const parser::Variable;
 using Scope = const semantics::Scope;
index 41a3ad3..809967e 100644 (file)
@@ -30,7 +30,7 @@ Addressable_impl *GetAddressable(Statement *stmt) {
 
 static std::string dump(const Expression &e) {
   std::stringstream stringStream;
-  e.v.AsFortran(stringStream);
+  e.AsFortran(stringStream);
   return stringStream.str();
 }