<div dir="ltr">Thanks for the revert, I thought I'd got all the bots happy but apparently some versions of MSVC were still broken :(<div><br></div><div>I'll see if I can get MSVC to accept an even dumber approach...<br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Feb 7, 2016 at 12:09 PM, Nico Weber via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: nico<br>
Date: Sun Feb  7 14:09:18 2016<br>
New Revision: 260053<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=260053&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=260053&view=rev</a><br>
Log:<br>
Revert 259942, r259943, r259948.<br>
<br>
The Windows bots have been failing for the last two days, with:<br>
<br>
FAILED: C:\PROGRA~2\MICROS~1.0\VC\bin\amd64\cl.exe -c LLVMContextImpl.cpp<br>
D:\buildslave\clang-x64-ninja-win7\llvm\lib\IR\LLVMContextImpl.cpp(137) :<br>
    error C2248: 'llvm::TrailingObjects<llvm::AttributeSetImpl,<br>
                                        llvm::IndexAttrPair>::operator delete' :<br>
        cannot access private member declared in class 'llvm::AttributeSetImpl'<br>
    TrailingObjects.h(298) : see declaration of<br>
        'llvm::TrailingObjects<llvm::AttributeSetImpl,<br>
                               llvm::IndexAttrPair>::operator delete'<br>
    AttributeImpl.h(213) : see declaration of 'llvm::AttributeSetImpl'<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/Support/TrailingObjects.h<br>
    llvm/trunk/lib/IR/AttributeImpl.h<br>
    llvm/trunk/unittests/Support/TrailingObjectsTest.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/Support/TrailingObjects.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/TrailingObjects.h?rev=260053&r1=260052&r2=260053&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/TrailingObjects.h?rev=260053&r1=260052&r2=260053&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Support/TrailingObjects.h (original)<br>
+++ llvm/trunk/include/llvm/Support/TrailingObjects.h Sun Feb  7 14:09:18 2016<br>
@@ -290,13 +290,9 @@ class TrailingObjects : private trailing<br>
   }<br>
<br>
 public:<br>
-  // Make this (privately inherited) member public.<br>
+  // make this (privately inherited) class public.<br>
   using ParentType::OverloadToken;<br>
<br>
-  /// Disable sized deallocation for all objects with trailing object storage;<br>
-  /// the inferred size will typically not be correct.<br>
-  void operator delete(void *P) { return ::operator delete(P); }<br>
-<br>
   /// Returns a pointer to the trailing object array of the given type<br>
   /// (which must be one of those specified in the class template). The<br>
   /// array may have zero or more elements in it.<br>
<br>
Modified: llvm/trunk/lib/IR/AttributeImpl.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/AttributeImpl.h?rev=260053&r1=260052&r2=260053&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/AttributeImpl.h?rev=260053&r1=260052&r2=260053&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/IR/AttributeImpl.h (original)<br>
+++ llvm/trunk/lib/IR/AttributeImpl.h Sun Feb  7 14:09:18 2016<br>
@@ -171,8 +171,6 @@ class AttributeSetNode final<br>
   void operator=(const AttributeSetNode &) = delete;<br>
   AttributeSetNode(const AttributeSetNode &) = delete;<br>
 public:<br>
-  using TrailingObjects<AttributeSetNode, Attribute>::operator delete;<br>
-<br>
   static AttributeSetNode *get(LLVMContext &C, ArrayRef<Attribute> Attrs);<br>
<br>
   bool hasAttribute(Attribute::AttrKind Kind) const {<br>
@@ -268,8 +266,6 @@ public:<br>
     }<br>
   }<br>
<br>
-  using TrailingObjects<AttributeSetImpl, IndexAttrPair>::operator delete;<br>
-<br>
   /// \brief Get the context that created this AttributeSetImpl.<br>
   LLVMContext &getContext() { return Context; }<br>
<br>
<br>
Modified: llvm/trunk/unittests/Support/TrailingObjectsTest.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/TrailingObjectsTest.cpp?rev=260053&r1=260052&r2=260053&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/TrailingObjectsTest.cpp?rev=260053&r1=260052&r2=260053&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/unittests/Support/TrailingObjectsTest.cpp (original)<br>
+++ llvm/trunk/unittests/Support/TrailingObjectsTest.cpp Sun Feb  7 14:09:18 2016<br>
@@ -34,7 +34,6 @@ public:<br>
     void *Mem = ::operator new(totalSizeToAlloc<short>(NumShorts));<br>
     return new (Mem) Class1(ShortArray, NumShorts);<br>
   }<br>
-  using TrailingObjects::operator delete;<br>
<br>
   short get(unsigned Num) const { return getTrailingObjects<short>()[Num]; }<br>
<br>
@@ -79,7 +78,6 @@ public:<br>
       *C->getTrailingObjects<double>() = D;<br>
     return C;<br>
   }<br>
-  using TrailingObjects::operator delete;<br>
<br>
   short getShort() const {<br>
     if (!HasShort)<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div></div>