Fix defaulted-functions-in-C++98 extension to give the functions the same
effect they would have in C++11. In particular, they do not prevent
value-initialization from performing zero-initialization, nor do they prevent a
struct from being an aggregate.

llvm-svn: 290229
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp
index 1860b94..a9db65a 100644
--- a/clang/lib/AST/DeclCXX.cpp
+++ b/clang/lib/AST/DeclCXX.cpp
@@ -534,15 +534,10 @@
         SMKind |= SMF_MoveConstructor;
     }
 
-    // C++ [dcl.init.aggr]p1:
-    //   An aggregate is an array or a class with no user-declared
-    //   constructors [...].
     // C++11 [dcl.init.aggr]p1: DR1518
-    //  An aggregate is an array or a class with no user-provided, explicit, or
-    //  inherited constructors
-    if (getASTContext().getLangOpts().CPlusPlus11
-            ? (Constructor->isUserProvided() || Constructor->isExplicit())
-            : !Constructor->isImplicit())
+    //   An aggregate is an array or a class with no user-provided, explicit, or
+    //   inherited constructors
+    if (Constructor->isUserProvided() || Constructor->isExplicit())
       data().Aggregate = false;
   }