diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-10-20 07:53:17 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-10-20 07:53:17 +0000 |
commit | e38da03f589901b08c800633e3077af528a9d4d8 (patch) | |
tree | bdc8ed0c3defe4f893d4e5858378f05513e3d2e5 /clang/lib/Sema/SemaExprCXX.cpp | |
parent | 673c9d901882211602c5167877f750cf74465763 (diff) | |
download | bcm5719-llvm-e38da03f589901b08c800633e3077af528a9d4d8.tar.gz bcm5719-llvm-e38da03f589901b08c800633e3077af528a9d4d8.zip |
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.
llvm-svn: 284701
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 96e1b24de89..b660bd34865 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -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); |