clang 10.0.0git

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:
[legend]
Collaboration diagram for clang::APNumericStorage:
[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 1403 of file Expr.h.

## Constructor & Destructor Documentation

## ◆ APNumericStorage()

clang::APNumericStorage::APNumericStorage | ( |  | ) |
| inline protected

Definition at line 1416 of file Expr.h.

## Member Function Documentation

## ◆ getIntValue()

llvm::APInt clang::APNumericStorage::getIntValue | ( |  | ) | const
| inline protected

Definition at line 1418 of file Expr.h.

References clang::C.

## ◆ setIntValue()

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

Definition at line 899 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 1406 of file Expr.h.

## ◆ VAL

uint64_t clang::APNumericStorage::VAL

Used to store the <= 64 bits integer value.

Definition at line 1405 of file Expr.h.

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

- include/clang/AST/Expr.h
- lib/AST/Expr.cpp