clang API Documentation
Used by IntegerLiteral/FloatingLiteral to store the numeric without leaking memory. More...
#include <Expr.h>
Protected Member Functions | |
APNumericStorage () | |
llvm::APInt | getIntValue () const |
void | setIntValue (const ASTContext &C, const llvm::APInt &Val) |
Used by IntegerLiteral/FloatingLiteral to store the numeric without leaking memory.
For large floats/integers, APFloat/APInt will allocate memory from the heap to represent these numbers. Unfortunately, when we use a BumpPtrAllocator to allocate IntegerLiteral/FloatingLiteral nodes the memory associated with the APFloat/APInt values will never get freed. APNumericStorage uses ASTContext's allocator for memory allocation.
clang::APNumericStorage::APNumericStorage | ( | ) | [inline, protected] |
llvm::APInt clang::APNumericStorage::getIntValue | ( | ) | const [inline, protected] |
Definition at line 1241 of file Expr.h.
Referenced by clang::APIntStorage::getValue(), and clang::APFloatStorage::getValue().
void APNumericStorage::setIntValue | ( | const ASTContext & | C, |
const llvm::APInt & | Val | ||
) | [protected] |
Definition at line 696 of file Expr.cpp.
References AttributeLangSupport::C, clang::ASTContext::Deallocate(), pVal, and VAL.
Referenced by clang::APIntStorage::setValue(), and clang::APFloatStorage::setValue().
uint64_t* clang::APNumericStorage::pVal |
Used to store the >64 bits integer value.
Definition at line 1229 of file Expr.h.
Referenced by getIntValue(), and setIntValue().
uint64_t clang::APNumericStorage::VAL |
Used to store the <= 64 bits integer value.
Definition at line 1228 of file Expr.h.
Referenced by getIntValue(), and setIntValue().