]> granicus.if.org Git - clang/commitdiff
Work around MSVC rejects-valid. Apparenty (some versions of) MSVC will check
authorRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 20 Oct 2016 07:53:17 +0000 (07:53 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 20 Oct 2016 07:53:17 +0000 (07:53 +0000)
that a member is default-initializable even if it's initialized by a default
member initializer.

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

lib/Sema/SemaExprCXX.cpp

index 96e1b24de89a7b66cbd139f6ae8ccd5dbb24bb26..b660bd348652707cf963e85aeecb7227457158c5 100644 (file)
@@ -5696,21 +5696,20 @@ QualType Sema::FindCompositePointerType(SourceLocation Loc,
 
   struct Conversion {
     Sema &S;
-    SourceLocation Loc;
     Expr *&E1, *&E2;
     QualType Composite;
-    InitializedEntity Entity =
-        InitializedEntity::InitializeTemporary(Composite);
-    InitializationKind Kind =
-        InitializationKind::CreateCopy(Loc, SourceLocation());
+    InitializedEntity Entity;
+    InitializationKind Kind;
     InitializationSequence E1ToC, E2ToC;
-    bool Viable = E1ToC && E2ToC;
+    bool Viable;
 
     Conversion(Sema &S, SourceLocation Loc, Expr *&E1, Expr *&E2,
                QualType Composite)
-        : S(S), Loc(Loc), E1(E1), E2(E2), Composite(Composite),
-          E1ToC(S, Entity, Kind, E1), E2ToC(S, Entity, Kind, E2) {
-    }
+        : S(S), E1(E1), E2(E2), Composite(Composite),
+          Entity(InitializedEntity::InitializeTemporary(Composite)),
+          Kind(InitializationKind::CreateCopy(Loc, SourceLocation())),
+          E1ToC(S, Entity, Kind, E1), E2ToC(S, Entity, Kind, E2),
+          Viable(E1ToC && E2ToC) {}
 
     QualType perform() {
       ExprResult E1Result = E1ToC.Perform(S, Entity, Kind, E1);