Re-introduce the ctor/dtor alias optimization, this time hidden behind a
command-line option which defaults off.

llvm-svn: 96649
diff --git a/clang/test/CodeGenCXX/virtual-destructor-calls.cpp b/clang/test/CodeGenCXX/virtual-destructor-calls.cpp
index 0a10fd1..91fd598 100644
--- a/clang/test/CodeGenCXX/virtual-destructor-calls.cpp
+++ b/clang/test/CodeGenCXX/virtual-destructor-calls.cpp
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-apple-darwin10 | FileCheck %s
+// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-apple-darwin10 -mconstructor-aliases | FileCheck %s
 
 struct A {
   virtual ~A();
@@ -8,9 +8,8 @@
   virtual ~B();
 };
 
-// Complete dtor: just defers to base dtor because there are no vbases.
-// CHECK: define void @_ZN1BD1Ev
-// CHECK: call void @_ZN1BD2Ev
+// Complete dtor: just an alias because there are no virtual bases.
+// CHECK: @_ZN1BD1Ev = alias {{.*}} @_ZN1BD2Ev
 
 // Deleting dtor: defers to the complete dtor.
 // CHECK: define void @_ZN1BD0Ev