Straw man for instantiation of expressions. Use it to instantiate the
width of bitfields.
I'll be burning this down and replacing it with a properly-dispatched
implementation like the one used for types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66796 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 8f03319..0ea1be3 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -1805,6 +1805,11 @@
QualType InstantiateType(QualType T, const TemplateArgument *TemplateArgs,
unsigned NumTemplateArgs,
SourceLocation Loc, DeclarationName Entity);
+
+ OwningExprResult InstantiateExpr(Expr *E,
+ const TemplateArgument *TemplateArgs,
+ unsigned NumTemplateArgs);
+
bool
InstantiateBaseSpecifiers(ClassTemplateSpecializationDecl *ClassTemplateSpec,
ClassTemplateDecl *ClassTemplate);
@@ -2305,7 +2310,7 @@
template <typename T>
class ExprOwningPtr : public Action::ExprArg {
public:
- ExprOwningPtr(Sema *S, T *expr) : Action::ExprArg(*S, expr) {};
+ ExprOwningPtr(Sema *S, T *expr) : Action::ExprArg(*S, expr) {}
void reset(T* p) { Action::ExprArg::operator=(p); }
T* get() const { return static_cast<T*>(Action::ExprArg::get()); }