p7.cpp revision 762bb9d0ad20320b9f97a841dce57ba5e8e48b07
1762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s 2f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl 3f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl// Straight from the standard 4f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redlstruct B1 { 5f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl B1(int); // expected-note {{previous constructor}} 6f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl}; 7f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redlstruct B2 { 8f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl B2(int); // expected-note {{conflicting constructor}} 9f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl}; 10f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redlstruct D1 : B1, B2 { 11f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl using B1::B1; // expected-note {{inherited here}} 12f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl using B2::B2; // expected-error {{already inherited constructor with the same signature}} 13f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl}; 14f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redlstruct D2 : B1, B2 { 15f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl using B1::B1; 16f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl using B2::B2; 17f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl D2(int); 18f677ea3cc9598d9952ad7ffab5fb322ba4c5be31Sebastian Redl}; 19