Workaround continued bot failures with MDTupleTypedArrayWrapper
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 7 Apr 2015 17:07:01 +0000 (17:07 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 7 Apr 2015 17:07:01 +0000 (17:07 +0000)
Change the explicit constructor to be more specific.  I think this will
get us past the continued bot failures [1] with older clangs.

[1]: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_build/8203

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234331 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/Metadata.h

index 133e8c4777f4b4a0d6a7e8c78009c42703854266..0e22e6bc6f151289caaead6b3cbfe919cc43a20f 100644 (file)
@@ -1079,10 +1079,10 @@ public:
 
   template <class U>
   explicit MDTupleTypedArrayWrapper(
-      const U &Tuple,
-      typename std::enable_if<
-          std::is_constructible<const MDTuple *, U>::value>::type * = nullptr)
-      : N(Tuple) {}
+      const MDTupleTypedArrayWrapper<U> &Other,
+      typename std::enable_if<!std::is_convertible<U *, T *>::value>::type * =
+          nullptr)
+      : N(Other.get()) {}
 
   explicit operator bool() const { return get(); }
   explicit operator MDTuple *() const { return get(); }