diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-09-06 01:31:23 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-09-06 01:31:23 +0000 |
commit | 94bcae46d5c0481970c126a78ec62487e3dec735 (patch) | |
tree | fc90cea1edcf39533251980b4d675365ae8a20a2 | |
parent | f87be558cf0e916c944ce1b80d5a2d04cf2a4bfd (diff) | |
download | bcm5719-llvm-94bcae46d5c0481970c126a78ec62487e3dec735.tar.gz bcm5719-llvm-94bcae46d5c0481970c126a78ec62487e3dec735.zip |
Revert "Initialize default CXXConstructExpr arguments to 0. Fixes a crash when
destroying the CXXConstructExpr.", this is causing test failures across the
board.
llvm-svn: 81100
-rw-r--r-- | clang/lib/AST/ExprCXX.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 4 | ||||
-rw-r--r-- | clang/test/SemaTemplate/default-expr-arguments.cpp | 5 |
3 files changed, 3 insertions, 8 deletions
diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp index 0cad283cb8d..0ffb1528721 100644 --- a/clang/lib/AST/ExprCXX.cpp +++ b/clang/lib/AST/ExprCXX.cpp @@ -403,8 +403,6 @@ CXXConstructExpr::CXXConstructExpr(ASTContext &C, StmtClass SC, QualType T, Args = new (C) Stmt*[NumArgs]; for (unsigned i = 0; i < numargs; ++i) Args[i] = args[i]; - for (unsigned i = numargs; i < NumArgs; ++i) - Args[0] = 0; } } diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 89acfd14d6f..3ee40e842c6 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -2899,8 +2899,8 @@ bool Sema::InitializeVarWithConstructor(VarDecl *VD, QualType DeclInitType, Expr **Exprs, unsigned NumExprs) { OwningExprResult TempResult = - BuildCXXConstructExpr(VD->getLocation(), DeclInitType, Constructor, - Exprs, NumExprs); + BuildCXXConstructExpr(/*FIXME: ConstructLoc*/ SourceLocation(), + DeclInitType, Constructor, Exprs, NumExprs); if (TempResult.isInvalid()) return true; diff --git a/clang/test/SemaTemplate/default-expr-arguments.cpp b/clang/test/SemaTemplate/default-expr-arguments.cpp index d689cc86e6b..925d52fb19a 100644 --- a/clang/test/SemaTemplate/default-expr-arguments.cpp +++ b/clang/test/SemaTemplate/default-expr-arguments.cpp @@ -20,7 +20,7 @@ void g() { } template<typename T> struct F { - F(T t = 10); // expected-error{{cannot initialize 't' with an rvalue of type 'int'}} + F(T t = 10); void f(T t = 10); // expected-error{{cannot initialize 't' with an rvalue of type 'int'}} }; @@ -34,9 +34,6 @@ void g2() { void g3(F<int> f, F<struct S> s) { f.f(); s.f(); // expected-note{{in instantiation of default function argument expression for 'f<struct S>' required here}} - - F<int> f2; - F<S> s2; // expected-note{{in instantiation of default function argument expression for 'F<struct S>' required here}} } template<typename T> struct G { |