r284701 - Work around MSVC rejects-valid. Apparenty (some versions of) MSVC will check
Richard Smith via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 20 00:53:19 PDT 2016
Author: rsmith
Date: Thu Oct 20 02:53:17 2016
New Revision: 284701
URL: http://llvm.org/viewvc/llvm-project?rev=284701&view=rev
Log:
Work around MSVC rejects-valid. Apparenty (some versions of) MSVC will check
that a member is default-initializable even if it's initialized by a default
member initializer.
Modified:
cfe/trunk/lib/Sema/SemaExprCXX.cpp
Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=284701&r1=284700&r2=284701&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExprCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExprCXX.cpp Thu Oct 20 02:53:17 2016
@@ -5696,21 +5696,20 @@ QualType Sema::FindCompositePointerType(
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);
More information about the cfe-commits
mailing list