]> granicus.if.org Git - clang/commitdiff
Simplify the code a bit, NFC.
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 15 Sep 2014 19:24:44 +0000 (19:24 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 15 Sep 2014 19:24:44 +0000 (19:24 +0000)
hasConstructorVariants is always true for MS and false for Itanium.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217809 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/ItaniumCXXABI.cpp
lib/CodeGen/MicrosoftCXXABI.cpp

index 877d32cc5f803b2aaee9182424193702c2b1f81d..b897abc2c04ec7ed4486fd20fdef344ab5453337 100644 (file)
@@ -3002,13 +3002,8 @@ ItaniumCXXABI::RTTIUniquenessKind ItaniumCXXABI::classifyRTTIUniqueness(
 static void emitCXXConstructor(CodeGenModule &CGM,
                                const CXXConstructorDecl *ctor,
                                StructorType ctorType) {
-  if (!CGM.getTarget().getCXXABI().hasConstructorVariants()) {
-    // If there are no constructor variants, always emit the complete
-    // destructor.
-    ctorType = StructorType::Complete;
-  } else if (!ctor->getParent()->getNumVBases() &&
-             (ctorType == StructorType::Complete ||
-              ctorType == StructorType::Base)) {
+  if (!ctor->getParent()->getNumVBases() &&
+      (ctorType == StructorType::Complete || ctorType == StructorType::Base)) {
     // The complete constructor is equivalent to the base constructor
     // for classes with no virtual bases.  Try to emit it as an alias.
     bool ProducedAlias = !CGM.TryEmitDefinitionAsAlias(
index 51446bba744977d978bc4b5df2fb66395ef92c1a..9324b20a4f3c6679426c27723b61a7594e0af002 100644 (file)
@@ -2876,20 +2876,8 @@ MicrosoftCXXABI::getMSCompleteObjectLocator(const CXXRecordDecl *RD,
 static void emitCXXConstructor(CodeGenModule &CGM,
                                const CXXConstructorDecl *ctor,
                                StructorType ctorType) {
-  if (!CGM.getTarget().getCXXABI().hasConstructorVariants()) {
-    // If there are no constructor variants, always emit the complete
-    // destructor.
-    ctorType = StructorType::Complete;
-  } else if (!ctor->getParent()->getNumVBases() &&
-             (ctorType == StructorType::Complete ||
-              ctorType == StructorType::Base)) {
-    // The complete constructor is equivalent to the base constructor
-    // for classes with no virtual bases.  Try to emit it as an alias.
-    bool ProducedAlias = !CGM.TryEmitDefinitionAsAlias(
-        GlobalDecl(ctor, Ctor_Complete), GlobalDecl(ctor, Ctor_Base), true);
-    if (ctorType == StructorType::Complete && ProducedAlias)
-      return;
-  }
+  // There are no constructor variants, always emit the complete destructor.
+  ctorType = StructorType::Complete;
 
   const CGFunctionInfo &fnInfo =
       CGM.getTypes().arrangeCXXStructorDeclaration(ctor, ctorType);