parent
b847bf547b
commit
1dc2c1d27f
|
@ -164,6 +164,8 @@ def err_using_decl_nested_name_specifier_is_current_class : Error<
|
||||||
"using declaration refers to its own class">;
|
"using declaration refers to its own class">;
|
||||||
def err_using_decl_nested_name_specifier_is_not_base_class : Error<
|
def err_using_decl_nested_name_specifier_is_not_base_class : Error<
|
||||||
"using declaration refers into '%0', which is not a base class of %1">;
|
"using declaration refers into '%0', which is not a base class of %1">;
|
||||||
|
def err_using_decl_inherited_constructor_unsupported : Error<
|
||||||
|
"inherited constructors are not supported">;
|
||||||
def err_using_decl_constructor_not_in_direct_base : Error<
|
def err_using_decl_constructor_not_in_direct_base : Error<
|
||||||
"%0 is not a direct base of %1, can not inherit constructors">;
|
"%0 is not a direct base of %1, can not inherit constructors">;
|
||||||
def err_using_decl_constructor_conflict : Error<
|
def err_using_decl_constructor_conflict : Error<
|
||||||
|
|
|
@ -2898,7 +2898,8 @@ void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) {
|
||||||
// waste space and performance on classes that are not meant to be
|
// waste space and performance on classes that are not meant to be
|
||||||
// instantiated (e.g. meta-functions). This doesn't apply to classes that
|
// instantiated (e.g. meta-functions). This doesn't apply to classes that
|
||||||
// have inherited constructors.
|
// have inherited constructors.
|
||||||
DeclareInheritedConstructors(Record);
|
// Disabled for 2.9
|
||||||
|
//DeclareInheritedConstructors(Record);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \brief Data used with FindHiddenVirtualMethod
|
/// \brief Data used with FindHiddenVirtualMethod
|
||||||
|
@ -4324,8 +4325,11 @@ NamedDecl *Sema::BuildUsingDeclaration(Scope *S, AccessSpecifier AS,
|
||||||
|
|
||||||
// Constructor inheriting using decls get special treatment.
|
// Constructor inheriting using decls get special treatment.
|
||||||
if (NameInfo.getName().getNameKind() == DeclarationName::CXXConstructorName) {
|
if (NameInfo.getName().getNameKind() == DeclarationName::CXXConstructorName) {
|
||||||
if (CheckInheritedConstructorUsingDecl(UD))
|
// Disabled for 2.9
|
||||||
UD->setInvalidDecl();
|
Diag(UD->getLocation(),
|
||||||
|
diag::err_using_decl_inherited_constructor_unsupported);
|
||||||
|
//if (CheckInheritedConstructorUsingDecl(UD))
|
||||||
|
UD->setInvalidDecl();
|
||||||
return UD;
|
return UD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s
|
// RUN: true
|
||||||
|
// Disabled for 2.9
|
||||||
|
//%clang_cc1 -std=c++0x -fsyntax-only -verify %s
|
||||||
|
|
||||||
// Tests related to constructor inheriting, but not specified in [class.inhctor]
|
// Tests related to constructor inheriting, but not specified in [class.inhctor]
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s
|
// RUN: true
|
||||||
|
// Disabled for 2.9
|
||||||
|
//%clang_cc1 -std=c++0x -fsyntax-only -verify %s
|
||||||
|
|
||||||
struct B1 {
|
struct B1 {
|
||||||
B1(int);
|
B1(int);
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s
|
// RUN: true
|
||||||
|
// Disabled for 2.9
|
||||||
|
//%clang_cc1 -std=c++0x -fsyntax-only -verify %s
|
||||||
|
|
||||||
// Straight from the standard
|
// Straight from the standard
|
||||||
struct B1 {
|
struct B1 {
|
||||||
|
|
Loading…
Reference in New Issue