Patch to build AST for ctor's initializer list according to
semantics of order of construction [class.init].



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75649 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 4344fde..e01bf23 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -1468,6 +1468,7 @@
                                                     SourceLocation MemberLoc,
                                                     IdentifierInfo &Member,
                                                     DeclPtrTy ImplDecl);
+  virtual void ActOnDefaultInitializers(DeclPtrTy ConstructorDecl);
   bool ConvertArgumentsForCall(CallExpr *Call, Expr *Fn,
                                FunctionDecl *FDecl,
                                const FunctionProtoType *Proto,
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index 17726c6..7d039dc 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -902,6 +902,17 @@
   }
 }
 
+void Sema::ActOnDefaultInitializers(DeclPtrTy ConstructorDecl) {
+  if (!ConstructorDecl)
+    return;
+  
+  if (CXXConstructorDecl *Constructor 
+      = dyn_cast<CXXConstructorDecl>(ConstructorDecl.getAs<Decl>()))
+    Constructor->setBaseOrMemberInitializers(Context, 
+                                           (CXXBaseOrMemberInitializer **)0, 0);
+                                           
+}
+
 namespace {
   /// PureVirtualMethodCollector - traverses a class and its superclasses
   /// and determines if it has any pure virtual methods.