[flang] Change per Jean's review comment
authorEric Schweitz <eschweitz@nvidia.com>
Wed, 27 Mar 2019 15:58:59 +0000 (08:58 -0700)
committerEric Schweitz <eschweitz@nvidia.com>
Wed, 27 Mar 2019 15:58:59 +0000 (08:58 -0700)
Original-commit: flang-compiler/f18@9a3a79927bbc2820706398dc2ac03f0eb1c79ad6
Reviewed-on: https://github.com/flang-compiler/f18/pull/354
Tree-same-pre-rewrite: false

flang/lib/FIR/afforestation.cc

index bc66211..d002ab3 100644 (file)
@@ -256,19 +256,17 @@ static parser::CharBlock NewTemporaryName() {
   return {name, name + len};
 }
 
-static TypeRep GetDefaultIntegerType() {
-  return {semantics::NumericTypeSpec{evaluate::SubscriptInteger::category,
-      AsExpr(evaluate::Constant<evaluate::SubscriptInteger>{
-          evaluate::SubscriptInteger::kind})}};
+static TypeRep GetDefaultIntegerType(semantics::SemanticsContext &c) {
+  evaluate::ExpressionAnalyzer analyzer{c};
+  return c.MakeNumericType(common::TypeCategory::Integer,
+      analyzer.GetDefaultKind(common::TypeCategory::Integer));
 }
 
-#if 0
-static TypeRep GetDefaultLogicalType() {
-  return {semantics::LogicalTypeSpec{
-      AsExpr(evaluate::Constant<evaluate::SubscriptInteger>{
-          evaluate::LogicalResult::kind})}};
+/*static*/ TypeRep GetDefaultLogicalType(semantics::SemanticsContext &c) {
+  evaluate::ExpressionAnalyzer analyzer{c};
+  return c.MakeLogicalType(
+      analyzer.GetDefaultKind(common::TypeCategory::Logical));
 }
-#endif
 
 class FortranIRLowering {
 public:
@@ -314,6 +312,9 @@ public:
     return {std::move(semantics::AnalyzeExpr(semanticsContext_, a).value())};
   }
 
+  TypeRep GetDefaultIntegerType() {
+    return FIR::GetDefaultIntegerType(semanticsContext_);
+  }
   // build a simple arithmetic Expression
   template<template<typename> class OPR>
   Expression ConsExpr(Expression e1, Expression e2) {