p3.cpp revision c5a89a1cc2f168ad0a115c560b8de5f1c952d8c5
1b387a3f23e423d62c053be86294b703da1d1a222Ted Kremenek// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s 277349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek 377349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenekstruct B1 { 477349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek B1(int); 577349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek B1(int, int); 677349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek}; 777349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenekstruct D1 : B1 { 877349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek using B1::B1; 977349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek}; 10b387a3f23e423d62c053be86294b703da1d1a222Ted KremenekD1 d1a(1), d1b(1, 1); 1141573ebf8fb971f40fa8a3e20648362c359b4916Ted Kremenek 12b387a3f23e423d62c053be86294b703da1d1a222Ted KremenekD1 fd1() { return 1; } 1377349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek 1477349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenekstruct B2 { 1577349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek explicit B2(int, int = 0, int = 0); 16d065d6080f0620bb80b933f3f5d52d37bb2ea770Ted Kremenek}; 17d065d6080f0620bb80b933f3f5d52d37bb2ea770Ted Kremenekstruct D2 : B2 { // expected-note 2 {{candidate constructor}} 18d065d6080f0620bb80b933f3f5d52d37bb2ea770Ted Kremenek using B2::B2; 191309f9a3b225ea846e5822691c39a77423125505Ted Kremenek}; 201309f9a3b225ea846e5822691c39a77423125505Ted KremenekD2 d2a(1), d2b(1, 1), d2c(1, 1, 1); 211309f9a3b225ea846e5822691c39a77423125505Ted Kremenek 221309f9a3b225ea846e5822691c39a77423125505Ted KremenekD2 fd2() { return 1; } // expected-error {{no viable conversion}} 231309f9a3b225ea846e5822691c39a77423125505Ted Kremenek 246b67630d5df195f4fe0e4273061c016901d69681Ted Kremenekstruct B3 { 25c0c3f5dbc9e78aa53a86c7d5e3eeda23ddad93d6Ted Kremenek B3(void*); // expected-note {{inherited from here}} 26f494b579b22f9950f5af021f0bf9879a91bb8b41Steve Naroff}; 27bb141217871e93767aa3f2de1b9946fa6d37066aZhongxing Xustruct D3 : B3 { // expected-note 2 {{candidate constructor}} 2877349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek using B3::B3; // expected-note {{candidate constructor (inherited)}} 291eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump}; 305e2d2c2ee3cf410643e0f9a5701708e51409d973Benjamin KramerD3 fd3() { return 1; } // expected-error {{no viable conversion}} 315e2d2c2ee3cf410643e0f9a5701708e51409d973Benjamin Kramer 325e2d2c2ee3cf410643e0f9a5701708e51409d973Benjamin Kramertemplate<typename T> struct T1 : B1 { 33f494b579b22f9950f5af021f0bf9879a91bb8b41Steve Naroff using B1::B1; 341eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump}; 3525e695b2d574d919cc1bbddf3a2efe073d449b1cZhongxing Xutemplate<typename T> struct T2 : T1<T> { 3625e695b2d574d919cc1bbddf3a2efe073d449b1cZhongxing Xu using T1<int>::T1; 370111f575b968e423dccae439e501225b8314b257Zhongxing Xu}; 381eb4433ac451dc16f4133a88af2d002ac26c58efMike Stumptemplate<typename T> struct T3 : T1<int> { 39b387a3f23e423d62c053be86294b703da1d1a222Ted Kremenek using T1<T>::T1; 40031ccc0555a82afc2e8afe29e19dd57ff204e2deZhongxing Xu}; 411eb4433ac451dc16f4133a88af2d002ac26c58efMike Stumpstruct U { 42b387a3f23e423d62c053be86294b703da1d1a222Ted Kremenek friend T1<int>::T1(int); 43b387a3f23e423d62c053be86294b703da1d1a222Ted Kremenek friend T1<int>::T1(int, int); 44031ccc0555a82afc2e8afe29e19dd57ff204e2deZhongxing Xu friend T2<int>::T2(int); 451eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump friend T2<int>::T2(int, int); 46b387a3f23e423d62c053be86294b703da1d1a222Ted Kremenek friend T3<int>::T3(int); 474adc81e540b874bafa15715fd2c5cb662463debdTed Kremenek friend T3<int>::T3(int, int); 48cf118d41f7930a18dce97416ef7834a62642f587Ted Kremenek}; 49b387a3f23e423d62c053be86294b703da1d1a222Ted Kremenek