13#ifndef LLVM_CLANG_AST_INTERP_INTERPSTACK_H
14#define LLVM_CLANG_AST_INTERP_INTERPSTACK_H
36 template <
typename T,
typename... Tys>
void push(Tys &&...Args) {
37 new (grow(aligned_size<T>()))
T(std::forward<Tys>(Args)...);
39 ItemTypes.push_back(toPrimType<T>());
44 template <
typename T>
T pop() {
46 assert(!ItemTypes.empty());
47 assert(ItemTypes.back() == toPrimType<T>());
50 T *Ptr = &peekInternal<T>();