<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&()</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>