diff options
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
| -rw-r--r-- | clang/lib/Sema/TreeTransform.h | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 7f3450b22bf..765ce0f5e87 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -1773,6 +1773,14 @@ public:                                              R, TemplateArgs);    } +  /// \brief Build a new noexcept expression. +  /// +  /// By default, performs semantic analysis to build the new expression. +  /// Subclasses may override this routine to provide different behavior. +  ExprResult RebuildCXXNoexceptExpr(SourceRange Range, Expr *Arg) { +    return SemaRef.BuildCXXNoexceptExpr(Range.getBegin(), Arg, Range.getEnd()); +  } +    /// \brief Build a new Objective-C @encode expression.    ///    /// By default, performs semantic analysis to build the new expression. @@ -5977,6 +5985,19 @@ TreeTransform<Derived>::TransformUnresolvedMemberExpr(UnresolvedMemberExpr *Old)  template<typename Derived>  ExprResult +TreeTransform<Derived>::TransformCXXNoexceptExpr(CXXNoexceptExpr *E) { +  ExprResult SubExpr = getDerived().TransformExpr(E->getOperand()); +  if (SubExpr.isInvalid()) +    return ExprError(); + +  if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getOperand()) +    return SemaRef.Owned(E->Retain()); + +  return getDerived().RebuildCXXNoexceptExpr(E->getSourceRange(),SubExpr.get()); +} + +template<typename Derived> +ExprResult  TreeTransform<Derived>::TransformObjCStringLiteral(ObjCStringLiteral *E) {    return SemaRef.Owned(E->Retain());  } | 

