From 772afb15e9602de562ef740d4d91c083a31e1162 Mon Sep 17 00:00:00 2001 From: John McCall Date: Tue, 12 Apr 2011 00:57:12 +0000 Subject: [PATCH] This test works now; enable it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129335 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CXX/class/class.union/p1.cpp | 34 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/test/CXX/class/class.union/p1.cpp b/test/CXX/class/class.union/p1.cpp index b5dd4dfd70..011185fb49 100644 --- a/test/CXX/class/class.union/p1.cpp +++ b/test/CXX/class/class.union/p1.cpp @@ -7,30 +7,30 @@ class Okay { }; class Virtual { - virtual void foo() { abort(); } // expected-note 3 {{because type 'Virtual' has a virtual member function}} + virtual void foo() { abort(); } // expected-note 4 {{because type 'Virtual' has a virtual member function}} }; -class VirtualBase : virtual Okay { // expected-note 3 {{because type 'VirtualBase' has a virtual base class}} +class VirtualBase : virtual Okay { // expected-note 4 {{because type 'VirtualBase' has a virtual base class}} }; class Ctor { - Ctor() { abort(); } // expected-note 3 {{because type 'Ctor' has a user-declared constructor}} + Ctor() { abort(); } // expected-note 4 {{because type 'Ctor' has a user-declared constructor}} }; class Ctor2 { Ctor2(); // expected-note 3 {{because type 'Ctor2' has a user-declared constructor}} }; class CopyCtor { - CopyCtor(CopyCtor &cc) { abort(); } // expected-note 3 {{because type 'CopyCtor' has a user-declared copy constructor}} + CopyCtor(CopyCtor &cc) { abort(); } // expected-note 4 {{because type 'CopyCtor' has a user-declared copy constructor}} }; // FIXME: this should eventually trigger on the operator's declaration line -class CopyAssign { // expected-note 3 {{because type 'CopyAssign' has a user-declared copy assignment operator}} +class CopyAssign { // expected-note 4 {{because type 'CopyAssign' has a user-declared copy assignment operator}} CopyAssign& operator=(CopyAssign& CA) { abort(); } }; class Dtor { - ~Dtor() { abort(); } // expected-note 3 {{because type 'Dtor' has a user-declared destructor}} + ~Dtor() { abort(); } // expected-note 4 {{because type 'Dtor' has a user-declared destructor}} }; union U1 { @@ -100,23 +100,21 @@ union U5 { template struct Either { bool tag; - union { + union { // expected-note 6 {{in instantiation of member class}} A a; - B b; + B b; // expected-error 6 {{non-trivial}} }; - Either(A& a) : tag(true), a(a) {} - Either(B& b) : tag(false), b(b) {} + Either(const A& a) : tag(true), a(a) {} + Either(const B& b) : tag(false), b(b) {} }; -/* FIXME: this should work, but crashes in template code. void fred() { - Either virt(0); - Either vbase(0); - Either ctor(0); - Either copyctor(0); - Either copyassign(0); - Either dtor(0); + Either virt(0); // expected-note {{in instantiation of template}} + Either vbase(0); // expected-note {{in instantiation of template}} + Either ctor(0); // expected-note {{in instantiation of template}} + Either copyctor(0); // expected-note {{in instantiation of template}} + Either copyassign(0); // expected-note {{in instantiation of template}} + Either dtor(0); // expected-note {{in instantiation of template}} Either okay(0); } - */ -- 2.40.0