forked from OSchip/llvm-project
When transforming an expression statement (e.g., for template
instantiation), be sure to finish the expression statement by providing a FullExprArg, making sure that temporaries get destroyed. Fixes an obscure failure when parsing llvm/LinkAllPasses.h. llvm-svn: 88668
This commit is contained in:
parent
420b0f1bd8
commit
07eae02fc7
|
@ -1348,7 +1348,7 @@ Sema::SetBaseOrMemberInitializers(CXXConstructorDecl *Constructor,
|
|||
if (const RecordType *FieldClassType =
|
||||
Field->getType()->getAs<RecordType>()) {
|
||||
CXXRecordDecl *FieldClassDecl
|
||||
= cast<CXXRecordDecl>(FieldClassType->getDecl());
|
||||
= cast<CXXRecordDecl>(FieldClassType->getDecl());
|
||||
for (RecordDecl::field_iterator FA = FieldClassDecl->field_begin(),
|
||||
EA = FieldClassDecl->field_end(); FA != EA; FA++) {
|
||||
if (CXXBaseOrMemberInitializer *Value = AllBaseFields.lookup(*FA)) {
|
||||
|
|
|
@ -1709,7 +1709,7 @@ Sema::OwningStmtResult TreeTransform<Derived>::TransformStmt(Stmt *S) {
|
|||
if (E.isInvalid())
|
||||
return getSema().StmtError();
|
||||
|
||||
return getSema().Owned(E.takeAs<Stmt>());
|
||||
return getSema().ActOnExprStmt(getSema().FullExpr(E));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue