diff options
author | Michael Kruse <llvm-project@meinersbur.de> | 2020-09-29 11:37:35 -0500 |
---|---|---|
committer | Michael Kruse <llvm-project@meinersbur.de> | 2020-09-29 11:40:42 -0500 |
commit | d2d7a44facd2dc895d378f19233837147f587b6d (patch) | |
tree | 0a1e28ef39c4f37fdcdf046c5c8cff0f030558d9 | |
parent | 7bed95a856f1e0146e838e7575677159f42f3bf7 (diff) | |
download | llvm-d2d7a44facd2dc895d378f19233837147f587b6d.zip llvm-d2d7a44facd2dc895d378f19233837147f587b6d.tar.gz llvm-d2d7a44facd2dc895d378f19233837147f587b6d.tar.bz2 |
[flang][msvc] Avoid templated initializer list initialization of vector. NFC.
The Microsoft compiler emits an error when populating the vector with a single element of a templated argument using the brace syntax. The error is:
```
constant.h(102,1): error C2664: 'std::vector<Fortran::evaluate::value::Complex<...>, ...>::vector(std::initializer_list<_Ty>,const _Alloc &)': cannot convert argument 1 from 'initializer list' to 'std::initializer_list<_Ty>'
```
To work around this error, we replace the templated constructor with one for the expected type. Conversion to the element type has to be done by the caller.
This patch is part of the series to make flang compilable with MS Visual Studio <http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html>.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D88163
-rw-r--r-- | flang/include/flang/Evaluate/constant.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/flang/include/flang/Evaluate/constant.h b/flang/include/flang/Evaluate/constant.h index a25916f..a9f6e87 100644 --- a/flang/include/flang/Evaluate/constant.h +++ b/flang/include/flang/Evaluate/constant.h @@ -97,8 +97,7 @@ public: template <typename A> ConstantBase(const A &x, Result res = Result{}) : result_{res}, values_{x} {} - template <typename A, typename = common::NoLvalue<A>> - ConstantBase(A &&x, Result res = Result{}) + ConstantBase(ELEMENT &&x, Result res = Result{}) : result_{res}, values_{std::move(x)} {} ConstantBase( std::vector<Element> &&, ConstantSubscripts &&, Result = Result{}); |