CXXBaseSpecifier;
32classCXXCtorInitializer;
35classParsedTemplateArgument;
39classTemplateParameterList;
49 template<
classPtrTy>
53 explicit OpaquePtr(
void*Ptr) : Ptr(Ptr) {}
66 template<
typenamePo
inteeT> PointeeT*
getPtrTo()
const{
76 template<
typenamePtrT> PtrT
getPtrAs()
const{
81 returnTraits::getFromVoidPointer(Ptr);
85Ptr = Traits::getAsVoidPointer(
P);
88 explicit operator bool()
const{
returnPtr !=
nullptr; }
108 Ptr=
P.getAsOpaquePtr();
119 static constexpr intNumLowBitsAvailable = 0;
123 return P.getAsOpaquePtr();
135classStreamingDiagnostic;
152template <class PtrTy, bool Compress = IsResultPtrLowBitFree<PtrTy>::value>
155 boolInvalid =
false;
158 ActionResult(
boolInvalid =
false) : Val(PtrTy()), Invalid(Invalid) {}
167 bool isUnset()
const{
return!Invalid && !Val; }
170PtrTy
get()
const{
returnVal; }
171 template<
typenameT>
T*
getAs() {
return static_cast<T*
>(
get()); }
182 static constexpr uintptr_tUnsetValue = 0x0;
183 static constexpr uintptr_tInvalidValue = 0x1;
191:
Value(Invalid ? InvalidValue : UnsetValue) {}
204 void*VP =
reinterpret_cast<void*
>(
Value& ~0x01);
205 returnPtrTraits::getFromVoidPointer(VP);
207 template<
typenameT>
T*
getAs() {
return static_cast<T*
>(
get()); }
210 void*VP = PtrTraits::getAsVoidPointer(RHS);
212assert((
Value& 0x01) == 0 &&
"Badly aligned pointer");
221assert(
Result.isInvalid() ||
222PtrTraits::getAsVoidPointer(
Result.get()) ==
P);
236 static const boolvalue =
true;
239 static const boolvalue =
true;
242 static const boolvalue =
true;
245 static const boolvalue =
true;
275assert(!R.
isInvalid() &&
"operation was asserted to never fail!");
280assert(!R.
isInvalid() &&
"operation was asserted to never fail!");
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
static ActionResult getFromOpaquePointer(void *P)
void * getAsOpaquePointer() const
ActionResult(bool Invalid=false)
ActionResult(const void *)=delete
ActionResult & operator=(PtrTy RHS)
ActionResult(volatile void *)=delete
ActionResult(const DiagnosticBuilder &)
The result of parsing/analyzing an expression, statement etc.
ActionResult(const void *)=delete
ActionResult & operator=(PtrTy RHS)
ActionResult(volatile void *)=delete
ActionResult(bool Invalid=false)
ActionResult(const DiagnosticBuilder &)
Represents a base class of a C++ class.
Represents a C++ base or member initializer.
A little helper class used to produce diagnostics.
This represents one expression.
Wrapper for void* pointer.
PointeeT * getPtrTo() const
Returns plain pointer to the entity pointed by this wrapper.
OpaquePtr(std::nullptr_t=nullptr)
PtrT getPtrAs() const
Returns pointer converted to the specified type.
void * getAsOpaquePtr() const
static OpaquePtr getFromOpaquePtr(void *P)
static OpaquePtr make(PtrTy P)
Stmt - This represents one statement.
The streaming interface shared between DiagnosticBuilder and PartialDiagnostic.
@ Decl
The l-value was an access to a declared entity or something equivalently strong, like the address of ...
The JSON file list parser is used to communicate input to InstallAPI.
Expr * AssertSuccess(ExprResult R)
@ Result
The result type of a method or function.
ActionResult< Expr * > ExprResult
ActionResult< Stmt * > StmtResult
ActionResult< ParsedType > TypeResult
const FunctionProtoType * T
Diagnostic wrappers for TextAPI types for error reporting.
__UINTPTR_TYPE__ uintptr_t
An unsigned integer type with the property that any valid pointer to void can be converted to this ty...
UnionOpaquePtr - A version of OpaquePtr suitable for membership in a union.
OpaquePtr< T > get() const
static UnionOpaquePtr make(OpaquePtr< T > P)
UnionOpaquePtr & operator=(OpaquePtr< T > P)
static clang::OpaquePtr< T > getFromVoidPointer(void *P)
static void * getAsVoidPointer(clang::OpaquePtr< T > P)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4