[flang] Make `TypeParamInquiry` monomorphic
authorpeter klausler <pklausler@nvidia.com>
Tue, 25 Aug 2020 16:40:20 +0000 (09:40 -0700)
committerpeter klausler <pklausler@nvidia.com>
Mon, 31 Aug 2020 22:40:40 +0000 (15:40 -0700)
commit4cbfd93a591a2e861bb69dfe896a7cff41931c05
tree40fbd1f2f0a3bda3233235a9b69c3db0ef961cb9
parentb79e19e6d6d70c33c6375dfa134e252f1bc60286
[flang] Make `TypeParamInquiry` monomorphic

Change the expression representation TypeParamInquiry from being
a class that's templatized on the integer KIND of its result into
a monomorphic representation that results in a SubscriptInteger
that can then be converted.

This is a minor simplification, but it's worth doing because
it is believed to also be a work-around for bugs in the MSVC
compiler with overload resolution that affect the expression
traversal framework.

Differential Revision: https://reviews.llvm.org/D86551
16 files changed:
flang/include/flang/Evaluate/expression.h
flang/include/flang/Evaluate/shape.h
flang/include/flang/Evaluate/traverse.h
flang/include/flang/Evaluate/variable.h
flang/lib/Evaluate/check-expression.cpp
flang/lib/Evaluate/fold-implementation.h
flang/lib/Evaluate/fold-integer.cpp
flang/lib/Evaluate/formatting.cpp
flang/lib/Evaluate/variable.cpp
flang/lib/Lower/ConvertType.cpp
flang/lib/Semantics/expression.cpp
flang/test/Semantics/kinds03.f90
flang/test/Semantics/modfile17.f90
flang/test/Semantics/modfile22.f90
flang/test/Semantics/modfile33.f90
flang/test/Semantics/symbol17.f90