Revert "unique_ptrify ValID::ConstantStructElts"
authorReid Kleckner <reid@kleckner.net>
Wed, 4 Mar 2015 18:31:10 +0000 (18:31 +0000)
committerReid Kleckner <reid@kleckner.net>
Wed, 4 Mar 2015 18:31:10 +0000 (18:31 +0000)
commit2337c1fd835fd7b0b890529ec133c81bb71d3b3d
tree4d364b0ea06ddb1db0a732256cdcc273c1b7b00e
parenta2b8275694b37fcbac71da704a5c8cecb272ddaa
Revert "unique_ptrify ValID::ConstantStructElts"

This reverts r231200 and r231204. The second one added an explicit move
ctor for MSVC.

This change broke the clang-cl self-host due to weirdness in MSVC's
implementation of std::map::insert. Somehow we lost our rvalue ref-ness
when going through variadic placement new:

  template <class _Objty, class... _Types>
  void construct(_Objty *_Ptr,
                 _Types &&... _Args) { // construct _Objty(_Types...) at _Ptr
    ::new ((void *)_Ptr) _Objty(_STD forward<_Types>(_Args)...);
  }

For some reason, Clang decided to call the deleted std::pair copy
constructor at this point. Needs further investigation, once I can
build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231269 91177308-0d34-0410-b5e6-96231b3b80d8
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLParser.h