clang
10.0.0git
|
Wrapper around numeric types. More...
#include "/work/www-prereleases/10.0.0/rc2/docsbuild/clang/lib/AST/Interp/Integral.h"
Public Member Functions | |
Integral () | |
Zero-initializes an integral. More... | |
template<unsigned SrcBits, bool SrcSign> | |
Integral (Integral< SrcBits, SrcSign > V) | |
Constructs an integral from another integral. More... | |
Integral (const APSInt &V) | |
Construct an integral from a value based on signedness. More... | |
bool | operator< (Integral RHS) const |
bool | operator> (Integral RHS) const |
bool | operator<= (Integral RHS) const |
bool | operator>= (Integral RHS) const |
bool | operator== (Integral RHS) const |
bool | operator!= (Integral RHS) const |
bool | operator> (unsigned RHS) const |
Integral | operator- () const |
Integral | operator~ () const |
template<unsigned DstBits, bool DstSign> | |
operator Integral< DstBits, DstSign > () const | |
operator unsigned () const | |
operator int64_t () const | |
operator uint64_t () const | |
APSInt | toAPSInt () const |
APSInt | toAPSInt (unsigned NumBits) const |
APValue | toAPValue () const |
Integral< Bits, false > | toUnsigned () const |
bool | isZero () const |
bool | isMin () const |
bool | isMinusOne () const |
bool | isNegative () const |
bool | isPositive () const |
ComparisonCategoryResult | compare (const Integral &RHS) const |
unsigned | countLeadingZeros () const |
Integral | truncate (unsigned TruncBits) const |
void | print (llvm::raw_ostream &OS) const |
Static Public Member Functions | |
static constexpr unsigned | bitWidth () |
static constexpr bool | isSigned () |
static Integral | min (unsigned NumBits) |
static Integral | max (unsigned NumBits) |
template<typename T > | |
static std::enable_if< std::is_integral< T >::value, Integral >::type | from (T Value) |
template<unsigned SrcBits, bool SrcSign> | |
static std::enable_if< SrcBits !=0, Integral >::type | from (Integral< SrcBits, SrcSign > Value) |
template<bool SrcSign> | |
static Integral | from (Integral< 0, SrcSign > Value) |
static Integral | zero () |
template<typename T > | |
static Integral | from (T Value, unsigned NumBits) |
static bool | inRange (int64_t Value, unsigned NumBits) |
static bool | increment (Integral A, Integral *R) |
static bool | decrement (Integral A, Integral *R) |
static bool | add (Integral A, Integral B, unsigned OpBits, Integral *R) |
static bool | sub (Integral A, Integral B, unsigned OpBits, Integral *R) |
static bool | mul (Integral A, Integral B, unsigned OpBits, Integral *R) |
Friends | |
template<unsigned OtherBits, bool OtherSigned> | |
class | Integral |
Wrapper around numeric types.
These wrappers are required to shared an interface between APSint and builtin primitive numeral types, while optimising for storage and allowing methods operating on primitive type to compile to fast code.
Definition at line 56 of file Integral.h.
|
inline |
Zero-initializes an integral.
Definition at line 73 of file Integral.h.
|
inlineexplicit |
Constructs an integral from another integral.
Definition at line 77 of file Integral.h.
|
inlineexplicit |
Construct an integral from a value based on signedness.
Definition at line 80 of file Integral.h.
|
inlinestatic |
Definition at line 195 of file Integral.h.
|
inlinestatic |
Definition at line 121 of file Integral.h.
Referenced by clang::interp::Integral< Bits, Signed >::decrement(), and clang::interp::Integral< Bits, Signed >::increment().
|
inline |
Definition at line 134 of file Integral.h.
References clang::interp::Compare().
|
inline |
Definition at line 138 of file Integral.h.
References V.
|
inlinestatic |
Definition at line 191 of file Integral.h.
References clang::interp::Integral< Bits, Signed >::bitWidth().
|
inlinestatic |
Definition at line 160 of file Integral.h.
References clang::ast_matchers::type.
|
inlinestatic |
Definition at line 166 of file Integral.h.
|
inlinestatic |
Definition at line 170 of file Integral.h.
|
inlinestatic |
Definition at line 179 of file Integral.h.
|
inlinestatic |
Definition at line 187 of file Integral.h.
References clang::interp::Integral< Bits, Signed >::bitWidth().
|
inlinestatic |
Definition at line 183 of file Integral.h.
|
inline |
Definition at line 125 of file Integral.h.
References min().
|
inline |
Definition at line 127 of file Integral.h.
|
inline |
Definition at line 131 of file Integral.h.
|
inline |
Definition at line 132 of file Integral.h.
|
inlinestatic |
Definition at line 129 of file Integral.h.
|
inline |
Definition at line 123 of file Integral.h.
References V.
Referenced by clang::interp::Boolean::from().
|
inlinestatic |
Definition at line 154 of file Integral.h.
|
inlinestatic |
Definition at line 151 of file Integral.h.
|
inlinestatic |
Definition at line 203 of file Integral.h.
References clang::interp::CheckRange(), and V.
|
inlineexplicit |
Definition at line 103 of file Integral.h.
References V.
|
inlineexplicit |
Definition at line 98 of file Integral.h.
References V.
|
inlineexplicit |
Definition at line 104 of file Integral.h.
References V.
|
inlineexplicit |
Definition at line 102 of file Integral.h.
References V.
|
inline |
Definition at line 88 of file Integral.h.
|
inline |
Definition at line 94 of file Integral.h.
|
inline |
Definition at line 83 of file Integral.h.
|
inline |
Definition at line 85 of file Integral.h.
|
inline |
Definition at line 87 of file Integral.h.
|
inline |
Definition at line 84 of file Integral.h.
|
inline |
Definition at line 90 of file Integral.h.
References V.
|
inline |
Definition at line 86 of file Integral.h.
|
inline |
Definition at line 95 of file Integral.h.
|
inline |
Definition at line 149 of file Integral.h.
References V.
|
inlinestatic |
Definition at line 199 of file Integral.h.
|
inline |
Definition at line 106 of file Integral.h.
|
inline |
Definition at line 109 of file Integral.h.
|
inline |
Definition at line 115 of file Integral.h.
|
inline |
Definition at line 117 of file Integral.h.
|
inline |
Definition at line 140 of file Integral.h.
|
inlinestatic |
Definition at line 177 of file Integral.h.
|
friend |
Definition at line 58 of file Integral.h.