Mercurial > hg > CbC > CbC_llvm
view clang/test/CXX/special/class.ctor/p1.cpp @ 236:c4bab56944e8 llvm-original
LLVM 16
author | kono |
---|---|
date | Wed, 09 Nov 2022 17:45:10 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -fsyntax-only -verify %s struct X0 { struct type { }; X0(); X0(int); (X0)(float); X0 (f0)(int); X0 (f0)(type); X0 f1(); X0 f1(double); }; X0::X0() { } (X0::X0)(int) { } X0 (X0::f0)(int) { return X0(); } template<typename T> struct X1 { struct type { }; X1<T>(); X1<T>(int); (X1<T>)(float); X1(float, float); (X1)(double); X1<T> (f0)(int); X1<T> (f0)(type); X1 (f1)(int); X1 (f1)(type); template<typename U> X1(U); X1 f2(); X1 f2(int); }; template<typename T> X1<T>::X1() { } template<typename T> (X1<T>::X1)(double) { } template<typename T> X1<T> X1<T>::f1(int) { return 0; } template<typename T> X1<T> (X1<T>::f1)(type) { return 0; } class X2 { X2::X2(); // expected-error {{extra qualification on member 'X2'}} }; // We used to parse 'X3::X3' as a member function declaration. // DR 1435 and DR 1310 made this invalid. typedef int T1; struct X3 { X3::X3(T1()); // expected-error {{extra qualification on member 'X3'}} };