diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-07-07 23:37:33 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-07-07 23:37:33 +0000 |
commit | e182370eda7c54ee2d02070e19993397b562f5a0 (patch) | |
tree | 2d63e0189d4d06eef9d14d758eb3ae23827cea6e /clang/lib/Sema/SemaInit.cpp | |
parent | 86851b8a7abd591d09180cce964f4246bfb2d376 (diff) | |
download | bcm5719-llvm-e182370eda7c54ee2d02070e19993397b562f5a0.tar.gz bcm5719-llvm-e182370eda7c54ee2d02070e19993397b562f5a0.zip |
Revert r107828 and r107827, the fix for PR7556, which seems to be
breaking bootstrap on Linux.
llvm-svn: 107837
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index 5571c1b3824..536222c37f0 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -2772,7 +2772,8 @@ static void TryValueInitialization(Sema &S, // zero-initialized and, if T’s implicitly-declared default // constructor is non-trivial, that constructor is called. if ((ClassDecl->getTagKind() == TTK_Class || - ClassDecl->getTagKind() == TTK_Struct)) { + ClassDecl->getTagKind() == TTK_Struct) && + !ClassDecl->hasTrivialConstructor()) { Sequence.AddZeroInitializationStep(Entity.getType()); return TryConstructorInitialization(S, Entity, Kind, 0, 0, T, Sequence); } @@ -3837,7 +3838,7 @@ InitializationSequence::Perform(Sema &S, } else if (Kind.getKind() == InitializationKind::IK_Value && S.getLangOptions().CPlusPlus && !Kind.isImplicitValueInit()) { - CurInit = S.Owned(new (S.Context) CXXScalarValueInitExpr(Step->Type, + CurInit = S.Owned(new (S.Context) CXXZeroInitValueExpr(Step->Type, Kind.getRange().getBegin(), Kind.getRange().getEnd())); } else { |