// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s namespace t1 { template struct VSX { ~VSX() { static_assert(sizeof(T) != 4, ""); } // expected-error {{static assertion failed due to requirement 'sizeof(int) != 4':}} \ // expected-note {{expression evaluates to '4 != 4'}} }; struct VS { union { VSX _Tail; }; ~VS() { } VS(short); VS(); }; VS::VS() : VS(0) { } // delegating constructors should not produce errors VS::VS(short) : _Tail() { } // expected-note {{in instantiation of member function 't1::VSX::~VSX' requested here}} } namespace t2 { template struct VSX { ~VSX() { static_assert(sizeof(T) != 4, ""); } // expected-error {{static assertion failed due to requirement 'sizeof(int) != 4':}} \ // expected-note {{expression evaluates to '4 != 4'}} }; struct VS { union { struct { VSX _Tail; }; }; ~VS() { } VS(short); }; VS::VS(short) : _Tail() { } // expected-note {{in instantiation of member function 't2::VSX::~VSX' requested here}} } namespace t3 { template struct VSX { ~VSX() { static_assert(sizeof(T) != 4, ""); } // expected-error {{static assertion failed due to requirement 'sizeof(int) != 4':}} \ // expected-note {{expression evaluates to '4 != 4'}} }; union VS { VSX _Tail; ~VS() { } VS(short); }; VS::VS(short) : _Tail() { } // expected-note {{in instantiation of member function 't3::VSX::~VSX' requested here}} }