diff options
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaTemplateDeduction.cpp | 3 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaTemplateInstantiateExpr.cpp | 2 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaTemplateInstantiateStmt.cpp | 6 |
3 files changed, 5 insertions, 6 deletions
diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp index 7fb159fec7e..b3d370ab12e 100644 --- a/clang/lib/Sema/SemaTemplateDeduction.cpp +++ b/clang/lib/Sema/SemaTemplateDeduction.cpp @@ -328,8 +328,7 @@ static QualType getUnqualifiedArrayType(ASTContext &Context, QualType T, if (Elt == DSAT->getElementType()) return T; - // FIXME: Clone expression! - return Context.getDependentSizedArrayType(Elt, DSAT->getSizeExpr(), + return Context.getDependentSizedArrayType(Elt, DSAT->getSizeExpr()->Retain(), DSAT->getSizeModifier(), 0, SourceRange()); } diff --git a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp index 1e97f5fcc46..186c98cf53e 100644 --- a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp +++ b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp @@ -147,7 +147,7 @@ TemplateExprInstantiator::VisitDeclRefExpr(DeclRefExpr *E) { // arguments left unspecified. if (NTTP->getPosition() >= TemplateArgs.size() || TemplateArgs[NTTP->getPosition()].isNull()) - return SemaRef.Owned(E); // FIXME: Clone the expression! + return SemaRef.Owned(E->Retain()); const TemplateArgument &Arg = TemplateArgs[NTTP->getPosition()]; diff --git a/clang/lib/Sema/SemaTemplateInstantiateStmt.cpp b/clang/lib/Sema/SemaTemplateInstantiateStmt.cpp index 565b95b329f..80ff5eb082a 100644 --- a/clang/lib/Sema/SemaTemplateInstantiateStmt.cpp +++ b/clang/lib/Sema/SemaTemplateInstantiateStmt.cpp @@ -81,7 +81,7 @@ Sema::OwningStmtResult TemplateStmtInstantiator::VisitDeclStmt(DeclStmt *S) { } Sema::OwningStmtResult TemplateStmtInstantiator::VisitNullStmt(NullStmt *S) { - return SemaRef.Owned(S->Clone(SemaRef.Context)); + return SemaRef.Owned(S->Retain()); } Sema::OwningStmtResult TemplateStmtInstantiator::VisitLabelStmt(LabelStmt *S) { @@ -112,12 +112,12 @@ TemplateStmtInstantiator::VisitIndirectGotoStmt(IndirectGotoStmt *S) { } Sema::OwningStmtResult TemplateStmtInstantiator::VisitBreakStmt(BreakStmt *S) { - return SemaRef.Owned(S->Clone(SemaRef.Context)); + return SemaRef.Owned(S->Retain()); } Sema::OwningStmtResult TemplateStmtInstantiator::VisitContinueStmt(ContinueStmt *S) { - return SemaRef.Owned(S->Clone(SemaRef.Context)); + return SemaRef.Owned(S->Retain()); } Sema::OwningStmtResult |

