diff options
author | Sebastian Redl <sebastian.redl@getdesigned.at> | 2011-03-12 13:44:32 +0000 |
---|---|---|
committer | Sebastian Redl <sebastian.redl@getdesigned.at> | 2011-03-12 13:44:32 +0000 |
commit | caa35e4bbfccaaa6c4d69f29b3f1a8b544b3645e (patch) | |
tree | 0fa5e695348d1fbee5d6b116287fe9557a43d57a | |
parent | a808c544f9df4d17cb189ba6aa167478cf17ad4a (diff) |
Revert "Disable inherited constructors for 2.9."
It is only meant for the release branch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127542 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Basic/DiagnosticSemaKinds.td | 2 | ||||
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 10 | ||||
-rw-r--r-- | test/CXX/special/class.inhctor/elsewhere.cpp | 4 | ||||
-rw-r--r-- | test/CXX/special/class.inhctor/p3.cpp | 4 | ||||
-rw-r--r-- | test/CXX/special/class.inhctor/p7.cpp | 4 |
5 files changed, 6 insertions, 18 deletions
diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index 9a2d8d3c7a..3a6c43c269 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -164,8 +164,6 @@ def err_using_decl_nested_name_specifier_is_current_class : Error< "using declaration refers to its own class">; 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">; -def err_using_decl_inherited_constructor_unsupported : Error< - "inherited constructors are not supported">; def err_using_decl_constructor_not_in_direct_base : Error< "%0 is not a direct base of %1, can not inherit constructors">; def err_using_decl_constructor_conflict : Error< diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 7a597be871..f6551054c1 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -2898,8 +2898,7 @@ void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) { // waste space and performance on classes that are not meant to be // instantiated (e.g. meta-functions). This doesn't apply to classes that // have inherited constructors. - // Disabled for 2.9 - //DeclareInheritedConstructors(Record); + DeclareInheritedConstructors(Record); } /// \brief Data used with FindHiddenVirtualMethod @@ -4325,11 +4324,8 @@ NamedDecl *Sema::BuildUsingDeclaration(Scope *S, AccessSpecifier AS, // Constructor inheriting using decls get special treatment. if (NameInfo.getName().getNameKind() == DeclarationName::CXXConstructorName) { - // Disabled for 2.9 - Diag(UD->getLocation(), - diag::err_using_decl_inherited_constructor_unsupported); - //if (CheckInheritedConstructorUsingDecl(UD)) - UD->setInvalidDecl(); + if (CheckInheritedConstructorUsingDecl(UD)) + UD->setInvalidDecl(); return UD; } diff --git a/test/CXX/special/class.inhctor/elsewhere.cpp b/test/CXX/special/class.inhctor/elsewhere.cpp index 83eeb00bf9..82944d65df 100644 --- a/test/CXX/special/class.inhctor/elsewhere.cpp +++ b/test/CXX/special/class.inhctor/elsewhere.cpp @@ -1,6 +1,4 @@ -// RUN: true -// Disabled for 2.9 -//%clang_cc1 -std=c++0x -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s // Tests related to constructor inheriting, but not specified in [class.inhctor] diff --git a/test/CXX/special/class.inhctor/p3.cpp b/test/CXX/special/class.inhctor/p3.cpp index be75b6c310..021f701ab4 100644 --- a/test/CXX/special/class.inhctor/p3.cpp +++ b/test/CXX/special/class.inhctor/p3.cpp @@ -1,6 +1,4 @@ -// RUN: true -// Disabled for 2.9 -//%clang_cc1 -std=c++0x -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s struct B1 { B1(int); diff --git a/test/CXX/special/class.inhctor/p7.cpp b/test/CXX/special/class.inhctor/p7.cpp index 4f80896485..3ad761f08b 100644 --- a/test/CXX/special/class.inhctor/p7.cpp +++ b/test/CXX/special/class.inhctor/p7.cpp @@ -1,6 +1,4 @@ -// RUN: true -// Disabled for 2.9 -//%clang_cc1 -std=c++0x -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s // Straight from the standard struct B1 { |