summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2011-03-12 13:44:32 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2011-03-12 13:44:32 +0000
commitcaa35e4bbfccaaa6c4d69f29b3f1a8b544b3645e (patch)
tree0fa5e695348d1fbee5d6b116287fe9557a43d57a
parenta808c544f9df4d17cb189ba6aa167478cf17ad4a (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.td2
-rw-r--r--lib/Sema/SemaDeclCXX.cpp10
-rw-r--r--test/CXX/special/class.inhctor/elsewhere.cpp4
-rw-r--r--test/CXX/special/class.inhctor/p3.cpp4
-rw-r--r--test/CXX/special/class.inhctor/p7.cpp4
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 {