Fix DensetSet::insert_as() for MSVC2015 (NFC)
The latest MSVC update apparently resolve the call from the const ref variant to itself, leading to an infinite recursion. It is not clear to me why the r-value overload is not selected. `ValueT` is a pointer type, and the functional-style cast in the call `insert_as(ValueT(V), LookupKey);` should result in a r-value ref. A bug in MSVC? Differential Revision: https://reviews.llvm.org/D23956 llvm-svn: 280685
This commit is contained in:
parent
62d0a5e7d3
commit
ac00212f16
|
@ -168,12 +168,11 @@ public:
|
|||
template <typename LookupKeyT>
|
||||
std::pair<iterator, bool> insert_as(const ValueT &V,
|
||||
const LookupKeyT &LookupKey) {
|
||||
return insert_as(ValueT(V), LookupKey);
|
||||
return TheMap.insert_as({V, detail::DenseSetEmpty()}, LookupKey);
|
||||
}
|
||||
template <typename LookupKeyT>
|
||||
std::pair<iterator, bool> insert_as(ValueT &&V, const LookupKeyT &LookupKey) {
|
||||
detail::DenseSetEmpty Empty;
|
||||
return TheMap.insert_as(std::make_pair(std::move(V), Empty), LookupKey);
|
||||
return TheMap.insert_as({std::move(V), detail::DenseSetEmpty()}, LookupKey);
|
||||
}
|
||||
|
||||
// Range insertion of values.
|
||||
|
|
Loading…
Reference in New Issue