<div dir="ltr">Hi Richard,<div><br></div><div>Not sure what the error is, or why it's only failing on our bots...</div><div><br></div><div><a href="http://lab.llvm.org:8011/builders/clang-native-arm-cortex-a9/builds/13642/steps/check-all/logs/Clang%3A%3Adr2xx.cpp">http://lab.llvm.org:8011/builders/clang-native-arm-cortex-a9/builds/13642/steps/check-all/logs/Clang%3A%3Adr2xx.cpp</a><br>
</div><div><br></div><div>cheers,</div><div>--renato</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 25 November 2013 08:07, Richard Smith <span dir="ltr"><<a href="mailto:richard-llvm@metafoo.co.uk" target="_blank">richard-llvm@metafoo.co.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rsmith<br>
Date: Mon Nov 25 02:07:41 2013<br>
New Revision: 195626<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=195626&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=195626&view=rev</a><br>
Log:<br>
Tests for core issues 270-300.<br>
<br>
Added:<br>
    cfe/trunk/test/CXX/drs/dr3xx.cpp<br>
Modified:<br>
    cfe/trunk/test/CXX/drs/dr2xx.cpp<br>
    cfe/trunk/www/cxx_dr_status.html<br>
<br>
Modified: cfe/trunk/test/CXX/drs/dr2xx.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr2xx.cpp?rev=195626&r1=195625&r2=195626&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr2xx.cpp?rev=195626&r1=195625&r2=195626&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/test/CXX/drs/dr2xx.cpp (original)<br>
+++ cfe/trunk/test/CXX/drs/dr2xx.cpp Mon Nov 25 02:07:41 2013<br>
@@ -3,7 +3,7 @@<br>
 // RUN: %clang_cc1 -std=c++1y %s -verify -fexceptions -fcxx-exceptions -pedantic-errors<br>
<br>
 // PR13819 -- __SIZE_TYPE__ is incompatible.<br>
-// REQUIRES: LP64<br>
+typedef __SIZE_TYPE__ size_t; // expected-warning 0-1 {{extension}}<br>
<br>
 #if __cplusplus < 201103L<br>
 #define fold(x) (__builtin_constant_p(x) ? (x) : (x))<br>
@@ -559,14 +559,14 @@ namespace dr252 { // dr252: yes<br>
<br>
   struct F {<br>
     // If both functions are available, the first one is a placement delete.<br>
-    void operator delete(void*, __SIZE_TYPE__);<br>
+    void operator delete(void*, size_t);<br>
     void operator delete(void*) = delete; // expected-error 0-1{{extension}} expected-note {{here}}<br>
     virtual ~F();<br>
   };<br>
   F::~F() {} // expected-error {{deleted}}<br>
<br>
   struct G {<br>
-    void operator delete(void*, __SIZE_TYPE__);<br>
+    void operator delete(void*, size_t);<br>
     virtual ~G();<br>
   };<br>
   G::~G() {}<br>
@@ -674,7 +674,7 @@ namespace dr261 { // dr261: no<br>
   // translation unit.<br>
   // We're also missing the -Wused-but-marked-unused diagnostic here.<br>
   struct A {<br>
-    inline void *operator new(__SIZE_TYPE__) __attribute__((unused));<br>
+    inline void *operator new(size_t) __attribute__((unused));<br>
     inline void operator delete(void*) __attribute__((unused));<br>
     A() {}<br>
   };<br>
@@ -724,3 +724,288 @@ namespace dr263 { // dr263: yes<br>
 // dr266: na<br>
 // dr269: na<br>
 // dr270: na<br>
+<br>
+namespace dr272 { // dr272: yes<br>
+  struct X {<br>
+    void f() {<br>
+      this->~X();<br>
+      X::~X();<br>
+      ~X(); // expected-error {{unary expression}}<br>
+    }<br>
+  };<br>
+}<br>
+<br>
+#include <stdarg.h><br>
+#include <stddef.h><br>
+namespace dr273 { // dr273: yes<br>
+  struct A {<br>
+    int n;<br>
+  };<br>
+  void operator&(A);<br>
+  void f(A a, ...) {<br>
+    offsetof(A, n);<br>
+    va_list val;<br>
+    va_start(val, a);<br>
+    va_end(val);<br>
+  }<br>
+}<br>
+<br>
+// dr274: na<br>
+<br>
+namespace dr275 { // dr275: no<br>
+  namespace N {<br>
+    template <class T> void f(T) {} // expected-note 1-4{{here}}<br>
+    template <class T> void g(T) {} // expected-note {{candidate}}<br>
+    template <> void f(int);<br>
+    template <> void f(char);<br>
+    template <> void f(double);<br>
+    template <> void g(char);<br>
+  }<br>
+<br>
+  using namespace N;<br>
+<br>
+  namespace M {<br>
+    template <> void N::f(char) {} // expected-error {{'M' does not enclose namespace 'N'}}<br>
+    template <class T> void g(T) {}<br>
+    template <> void g(char) {}<br>
+    template void f(long);<br>
+#if __cplusplus >= 201103L<br>
+    // FIXME: this should be rejected in c++98 too<br>
+    // expected-error@-3 {{must occur in namespace 'N'}}<br>
+#endif<br>
+    template void N::f(unsigned long);<br>
+#if __cplusplus >= 201103L<br>
+    // FIXME: this should be rejected in c++98 too<br>
+    // expected-error@-3 {{not in a namespace enclosing 'N'}}<br>
+#endif<br>
+    template void h(long); // expected-error {{does not refer to a function template}}<br>
+    template <> void f(double) {} // expected-error {{no function template matches}}<br>
+  }<br>
+<br>
+  template <class T> void g(T) {} // expected-note {{candidate}}<br>
+<br>
+  template <> void N::f(char) {}<br>
+  template <> void f(int) {} // expected-error {{no function template matches}}<br>
+<br>
+  template void f(short);<br>
+#if __cplusplus >= 201103L<br>
+  // FIXME: this should be rejected in c++98 too<br>
+  // expected-error@-3 {{must occur in namespace 'N'}}<br>
+#endif<br>
+  template void N::f(unsigned short);<br>
+<br>
+  // FIXME: this should probably be valid. the wording from the issue<br>
+  // doesn't clarify this, but it follows from the usual rules.<br>
+  template void g(int); // expected-error {{ambiguous}}<br>
+<br>
+  // FIXME: likewise, this should also be valid.<br>
+  template<typename T> void f(T) {} // expected-note {{candidate}}<br>
+  template void f(short); // expected-error {{ambiguous}}<br>
+}<br>
+<br>
+// dr276: na<br>
+<br>
+namespace dr277 { // dr277: yes<br>
+  typedef int *intp;<br>
+  int *p = intp();<br>
+  int a[fold(intp() ? -1 : 1)];<br>
+}<br>
+<br>
+namespace dr280 { // dr280: yes<br>
+  typedef void f0();<br>
+  typedef void f1(int);<br>
+  typedef void f2(int, int);<br>
+  typedef void f3(int, int, int);<br>
+  struct A {<br>
+    operator f1*(); // expected-note {{here}} expected-note {{candidate}}<br>
+    operator f2*();<br>
+  };<br>
+  struct B {<br>
+    operator f0*(); // expected-note {{candidate}}<br>
+  private:<br>
+    operator f3*(); // expected-note {{here}} expected-note {{candidate}}<br>
+  };<br>
+  struct C {<br>
+    operator f0*(); // expected-note {{candidate}}<br>
+    operator f1*(); // expected-note {{candidate}}<br>
+    operator f2*(); // expected-note {{candidate}}<br>
+    operator f3*(); // expected-note {{candidate}}<br>
+  };<br>
+  struct D : private A, B { // expected-note 2{{here}}<br>
+    operator f2*(); // expected-note {{candidate}}<br>
+  } d;<br>
+  struct E : C, D {} e;<br>
+  void g() {<br>
+    d(); // ok, public<br>
+    d(0); // expected-error {{private member of 'dr280::A'}} expected-error {{private base class 'dr280::A'}}<br>
+    d(0, 0); // ok, suppressed by member in D<br>
+    d(0, 0, 0); // expected-error {{private member of 'dr280::B'}}<br>
+    e(); // expected-error {{ambiguous}}<br>
+    e(0); // expected-error {{ambiguous}}<br>
+    e(0, 0); // expected-error {{ambiguous}}<br>
+    e(0, 0, 0); // expected-error {{ambiguous}}<br>
+  }<br>
+}<br>
+<br>
+namespace dr281 { // dr281: no<br>
+  void a();<br>
+  inline void b();<br>
+<br>
+  void d();<br>
+  inline void e();<br>
+<br>
+  struct S {<br>
+    friend inline void a(); // FIXME: ill-formed<br>
+    friend inline void b();<br>
+    friend inline void c(); // FIXME: ill-formed<br>
+    friend inline void d() {}<br>
+    friend inline void e() {}<br>
+    friend inline void f() {}<br>
+  };<br>
+}<br>
+<br>
+namespace dr283 { // dr283: yes<br>
+  template<typename T> // expected-note 2{{here}}<br>
+  struct S {<br>
+    friend class T; // expected-error {{shadows}}<br>
+    class T; // expected-error {{shadows}}<br>
+  };<br>
+}<br>
+<br>
+namespace dr284 { // dr284: no<br>
+  namespace A {<br>
+    struct X;<br>
+    enum Y {};<br>
+    class Z {};<br>
+  }<br>
+  namespace B {<br>
+    struct W;<br>
+    using A::X;<br>
+    using A::Y;<br>
+    using A::Z;<br>
+  }<br>
+  struct B::V {}; // expected-error {{no struct named 'V'}}<br>
+  struct B::W {};<br>
+  struct B::X {}; // FIXME: ill-formed<br>
+  enum B::Y e; // ok per dr417<br>
+  class B::Z z; // ok per dr417<br>
+<br>
+  struct C {<br>
+    struct X;<br>
+    enum Y {};<br>
+    class Z {};<br>
+  };<br>
+  struct D : C {<br>
+    struct W;<br>
+    using C::X;<br>
+    using C::Y;<br>
+    using C::Z;<br>
+  };<br>
+  struct D::V {}; // expected-error {{no struct named 'V'}}<br>
+  struct D::W {};<br>
+  struct D::X {}; // FIXME: ill-formed<br>
+  enum D::Y e2; // ok per dr417<br>
+  class D::Z z2; // ok per dr417<br>
+}<br>
+<br>
+namespace dr285 { // dr285: yes<br>
+  template<typename T> void f(T, int); // expected-note {{match}}<br>
+  template<typename T> void f(int, T); // expected-note {{match}}<br>
+  template<> void f<int>(int, int) {} // expected-error {{ambiguous}}<br>
+}<br>
+<br>
+namespace dr286 { // dr286: yes<br>
+  template<class T> struct A {<br>
+    class C {<br>
+      template<class T2> struct B {}; // expected-note {{here}}<br>
+    };<br>
+  };<br>
+<br>
+  template<class T><br>
+  template<class T2><br>
+  struct A<T>::C::B<T2*> { };<br>
+<br>
+  A<short>::C::B<int*> absip; // expected-error {{private}}<br>
+}<br>
+<br>
+// dr288: na<br>
+<br>
+namespace dr289 { // dr289: yes<br>
+  struct A; // expected-note {{forward}}<br>
+  struct B : A {}; // expected-error {{incomplete}}<br>
+<br>
+  template<typename T> struct C { typename T::error error; }; // expected-error {{cannot be used prior to '::'}}<br>
+  struct D : C<int> {}; // expected-note {{instantiation}}<br>
+}<br>
+<br>
+// dr290: na<br>
+// dr291: dup 391<br>
+// dr292 FIXME: write a codegen test<br>
+<br>
+namespace dr294 { // dr294: no<br>
+  void f() throw(int);<br>
+  int main() {<br>
+    // FIXME: we reject this for the wrong reason, because we don't implement<br>
+    // dr87 yet.<br>
+    (void)static_cast<void (*)() throw()>(f); // expected-error {{not superset}}<br>
+    void (*p)() throw() = f; // expected-error {{not superset}}<br>
+<br>
+    (void)static_cast<void (*)() throw(int)>(f); // FIXME: ill-formed<br>
+  }<br>
+}<br>
+<br>
+namespace dr295 { // dr295: no<br>
+  typedef int f();<br>
+  // FIXME: This warning is incorrect.<br>
+  const f g; // expected-warning {{unspecified behavior}}<br>
+  const f &r = g; // expected-warning {{unspecified behavior}}<br>
+  template<typename T> struct X {<br>
+    const T &f;<br>
+  };<br>
+  X<f> x = {g}; // FIXME: expected-error {{drops qualifiers}}<br>
+}<br>
+<br>
+namespace dr296 { // dr296: yes<br>
+  struct A {<br>
+    static operator int() { return 0; } // expected-error {{static}}<br>
+  };<br>
+}<br>
+<br>
+namespace dr298 { // dr298: yes<br>
+  struct A {<br>
+    typedef int type;<br>
+    A();<br>
+    ~A();<br>
+  };<br>
+  typedef A B; // expected-note {{here}}<br>
+  typedef const A C; // expected-note {{here}}<br>
+<br>
+  A::type i1;<br>
+  B::type i2;<br>
+  C::type i3;<br>
+<br>
+  struct A a;<br>
+  struct B b; // expected-error {{refers to a typedef}}<br>
+  struct C c; // expected-error {{refers to a typedef}}<br>
+<br>
+  B::B() {} // expected-error {{requires a type specifier}}<br>
+  B::A() {} // ok<br>
+  C::~C() {} // expected-error {{expected the class name}}<br>
+  C::~A() {} // ok<br>
+<br>
+  typedef struct D E; // expected-note {{here}}<br>
+  struct E {}; // expected-error {{conflicts with typedef}}<br>
+}<br>
+<br>
+namespace dr299 { // dr299: yes c++11<br>
+  struct S {<br>
+    operator int();<br>
+  };<br>
+  struct T {<br>
+    operator int(); // expected-note {{}}<br>
+    operator unsigned(); // expected-note {{}}<br>
+  };<br>
+  // FIXME: should this apply to c++98 mode?<br>
+  int *p = new int[S()]; // expected-error 0-1{{extension}}<br>
+  int *q = new int[T()]; // expected-error {{ambiguous}}<br>
+}<br>
<br>
Added: cfe/trunk/test/CXX/drs/dr3xx.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr3xx.cpp?rev=195626&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr3xx.cpp?rev=195626&view=auto</a><br>

==============================================================================<br>
--- cfe/trunk/test/CXX/drs/dr3xx.cpp (added)<br>
+++ cfe/trunk/test/CXX/drs/dr3xx.cpp Mon Nov 25 02:07:41 2013<br>
@@ -0,0 +1,11 @@<br>
+// RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors<br>
+// RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors<br>
+// RUN: %clang_cc1 -std=c++1y %s -verify -fexceptions -fcxx-exceptions -pedantic-errors<br>
+<br>
+namespace dr300 { // dr300: yes<br>
+  template<typename R, typename A> void f(R (&)(A)) {}<br>
+  int g(int);<br>
+  void h() { f(g); }<br>
+}<br>
+<br>
+// expected-no-diagnostics<br>
<br>
Modified: cfe/trunk/www/cxx_dr_status.html<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/www/cxx_dr_status.html?rev=195626&r1=195625&r2=195626&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/www/cxx_dr_status.html?rev=195626&r1=195625&r2=195626&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/www/cxx_dr_status.html (original)<br>
+++ cfe/trunk/www/cxx_dr_status.html Mon Nov 25 02:07:41 2013<br>
@@ -1672,37 +1672,37 @@ of class templates</td><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#272" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#272</a>">272</a></td><br>

     <td>CD1</td><br>
     <td>Explicit destructor invocation and <I>qualified-id</I>s</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#273" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#273</a>">273</a></td><br>

     <td>CD1</td><br>
     <td>POD classes and <TT>operator&amp;()</TT></td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#274" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#274</a>">274</a></td><br>

     <td>CD1</td><br>
     <td>Cv-qualification and char-alias access to out-of-lifetime objects</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="na" align="center">N/A</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#275" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#275</a>">275</a></td><br>

     <td>CD1</td><br>
     <td>Explicit instantiation/specialization and <I>using-directive</I>s</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="none" align="center">No</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#276" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#276</a>">276</a></td><br>

     <td>CD1</td><br>
     <td>Order of destruction of parameters and temporaries</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="na" align="center">N/A</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#277" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#277</a>">277</a></td><br>

     <td>CD1</td><br>
     <td>Zero-initialization of pointers</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr class="open"><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#278" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#278</a>">278</a></td><br>

@@ -1720,13 +1720,13 @@ of class templates</td><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#280" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#280</a>">280</a></td><br>

     <td>CD1</td><br>
     <td>Access and surrogate call functions</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#281" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#281</a>">281</a></td><br>

     <td>CD1</td><br>
     <td><TT>inline</TT> specifier in <TT>friend</TT> declarations</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="none" align="center">No</td><br>
   </tr><br>
   <tr class="open"><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#282" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#282</a>">282</a></td><br>

@@ -1738,25 +1738,25 @@ of class templates</td><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#283" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#283</a>">283</a></td><br>

     <td>CD1</td><br>
     <td>Template <I>type-parameter</I>s are not syntactically <I>type-name</I>s</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#284" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#284</a>">284</a></td><br>

     <td>CD1</td><br>
     <td><I>qualified-id</I>s in class declarations</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="none" align="center">No</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#285" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#285</a>">285</a></td><br>

     <td>NAD</td><br>
     <td>Identifying a function template being specialized</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#286" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#286</a>">286</a></td><br>

     <td>CD1</td><br>
     <td>Incorrect example in partial specialization</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr class="open"><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#287" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#287</a>">287</a></td><br>

@@ -1768,25 +1768,25 @@ of class templates</td><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#288" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#288</a>">288</a></td><br>

     <td>CD1</td><br>
     <td>Misuse of "static type" in describing pointers</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="na" align="center">N/A</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#289" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#289</a>">289</a></td><br>

     <td>CD1</td><br>
     <td>Incomplete list of contexts requiring a complete type</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#290" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#290</a>">290</a></td><br>

     <td>NAD</td><br>
     <td>Should memcpy be allowed into a POD with a const member?</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="na" align="center">N/A</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#291" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#291</a>">291</a></td><br>

     <td>CD1</td><br>
     <td>Overload resolution needed when binding reference to class rvalue</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="none" align="center">Duplicate of 391</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292</a>">292</a></td><br>

@@ -1804,19 +1804,19 @@ of class templates</td><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#294" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#294</a>">294</a></td><br>

     <td>NAD</td><br>
     <td>Can <TT>static_cast</TT> drop exception specifications?</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="none" align="center">No</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#295" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#295</a>">295</a></td><br>

     <td>CD1</td><br>
     <td>cv-qualifiers on function types</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="none" align="center">No</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#296" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#296</a>">296</a></td><br>

     <td>CD1</td><br>
     <td>Can conversion functions be static?</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr class="open"><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#297" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#297</a>">297</a></td><br>

@@ -1828,19 +1828,19 @@ of class templates</td><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#298" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#298</a>">298</a></td><br>

     <td>CD1</td><br>
     <td><TT>T::x</TT> when <TT>T</TT> is cv-qualified</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#299" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#299</a>">299</a></td><br>

     <td>CD1</td><br>
     <td>Conversion on array bound expression in <TT>new</TT></td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes (C++11 onwards)</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#300" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#300</a>">300</a></td><br>

     <td>CD1</td><br>
     <td>References to functions in template argument deduction</td><br>
-    <td class="none" align="center">Unknown</td><br>
+    <td class="full" align="center">Yes</td><br>
   </tr><br>
   <tr><br>
     <td><a href="<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#301" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#301</a>">301</a></td><br>

<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>