clang  6.0.0svn
Protected Member Functions | List of all members
clang::APNumericStorage Class Reference

Used by IntegerLiteral/FloatingLiteral to store the numeric without leaking memory. More...

#include "clang/AST/Expr.h"

Inheritance diagram for clang::APNumericStorage:
Inheritance graph
[legend]
Collaboration diagram for clang::APNumericStorage:
Collaboration graph
[legend]

Protected Member Functions

 APNumericStorage ()
 
llvm::APInt getIntValue () const
 
void setIntValue (const ASTContext &C, const llvm::APInt &Val)
 

Detailed Description

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.

Definition at line 1252 of file Expr.h.

Constructor & Destructor Documentation

◆ APNumericStorage()

clang::APNumericStorage::APNumericStorage ( )
inlineprotected

Definition at line 1265 of file Expr.h.

Member Function Documentation

◆ getIntValue()

llvm::APInt clang::APNumericStorage::getIntValue ( ) const
inlineprotected

Definition at line 1267 of file Expr.h.

◆ setIntValue()

void APNumericStorage::setIntValue ( const ASTContext C,
const llvm::APInt &  Val 
)
protected

Definition at line 719 of file Expr.cpp.

References clang::C, and clang::ASTContext::Deallocate().

Member Data Documentation

◆ pVal

uint64_t* clang::APNumericStorage::pVal

Used to store the >64 bits integer value.

Definition at line 1255 of file Expr.h.

◆ VAL

uint64_t clang::APNumericStorage::VAL

Used to store the <= 64 bits integer value.

Definition at line 1254 of file Expr.h.


The documentation for this class was generated from the following files: