A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/Type_8cpp.html below:

clang: lib/AST/Type.cpp File Reference

#include "clang/AST/Type.h"
#include "Linkage.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclFriend.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/Expr.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/PrettyPrinter.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/TypeVisitor.h"
#include "clang/Basic/AddressSpaces.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/Linkage.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TargetCXXABI.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/Visibility.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <cstring>
#include <optional>
#include "clang/AST/TypeNodes.inc"
#include "clang/Basic/WebAssemblyReferenceTypes.def"
#include "clang/Basic/HLSLIntangibleTypes.def"
#include "clang/Basic/AArch64SVEACLETypes.def"
#include "clang/Basic/RISCVVTypes.def"
#include "clang/Basic/OpenCLImageTypes.def"
#include "clang/Basic/OpenCLExtensionTypes.def"
#include "clang/Basic/PPCTypes.def"
#include "clang/Basic/AMDGPUTypes.def"
#include "clang/AST/BuiltinTypes.def"

Go to the source code of this file.

namespace   clang   The JSON file list parser is used to communicate input to InstallAPI.
  #define  TYPE(CLASS, BASE)   #define  TYPE(CLASS, BASE)   #define  ABSTRACT_TYPE(Class, Parent)   #define  TYPE(Class, Parent)   #define  ABSTRACT_TYPE(Class, Parent)   #define  TYPE(Class, Parent)   #define  ABSTRACT_TYPE(Class, Parent)   #define  TYPE(Class, Parent)   #define  ABSTRACT_TYPE(Class, Parent)   #define  TYPE(Class, Parent)   #define  ABSTRACT_TYPE(Class, Parent)   #define  TYPE(Class, Parent)   #define  TYPE(Class, Base)   #define  DEPENDENT_TYPE(Class, Base)    QualType Visit##Class##Type(const Class##Type *T) { return QualType(T, 0); }   #define  TRIVIAL_TYPE_CLASS(Class)    QualType Visit##Class##Type(const Class##Type *T) { return QualType(T, 0); }   #define  SUGARED_TYPE_CLASS(Class)   #define  WASM_TYPE(Name, Id, SingletonId)   case BuiltinType::Id:   #define  HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId)   case BuiltinType::Id:   #define  SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId)   #define  SVE_OPAQUE_TYPE(Name, MangledName, Id, SingletonId)   #define  SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId)   #define  SVE_TYPE(Name, Id, SingletonId)   #define  RVV_TYPE(Name, Id, SingletonId)   case BuiltinType::Id:   #define  RVV_VECTOR_TYPE(Name, Id, SingletonId, NumEls, ElBits, NF, IsSigned, IsFP, IsBF)   #define  RVV_PREDICATE_TYPE(Name, Id, SingletonId, NumEls)   #define  RVV_PREDICATE_TYPE(Name, Id, SingletonId, NumEls)   #define  ABSTRACT_TYPE(Derived, Base)   #define  TYPE(Derived, Base)   case Derived: return #Derived;   #define  IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix)   #define  EXT_OPAQUE_TYPE(ExtType, Id, Ext)   #define  SVE_TYPE(Name, Id, SingletonId)   #define  PPC_VECTOR_TYPE(Name, Id, Size)   #define  RVV_TYPE(Name, Id, SingletonId)   #define  WASM_TYPE(Name, Id, SingletonId)   #define  AMDGPU_TYPE(Name, Id, SingletonId, Width, Align)   #define  HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId)   #define  TYPE(Class, Base)   #define  NON_CANONICAL_TYPE(Class, Base)   case Type::Class:   #define  TYPE(Class, Base)   #define  DEPENDENT_TYPE(Class, Base)   case Type::Class:   #define  NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base)   case Type::Class:   #define  TYPE(Class, Base)   #define  NON_CANONICAL_TYPE(Class, Base)   case Type::Class:   #define  TYPE(Class, Base)   #define  DEPENDENT_TYPE(Class, Base)   case Type::Class:   #define  NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base)   case Type::Class:   #define  NON_CANONICAL_TYPE(Class, Parent)   #define  TYPE(Class, Parent)   #define  SIGNED_TYPE(Id, SingletonId)   case BuiltinType::Id:   #define  UNSIGNED_TYPE(Id, SingletonId)   case BuiltinType::Id:   #define  FLOATING_TYPE(Id, SingletonId)   case BuiltinType::Id:   #define  BUILTIN_TYPE(Id, SingletonId)   #define  IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix)    case BuiltinType::Id:   #define  EXT_OPAQUE_TYPE(ExtType, Id, Ext)    case BuiltinType::Id:   #define  SVE_TYPE(Name, Id, SingletonId)    case BuiltinType::Id:   #define  PPC_VECTOR_TYPE(Name, Id, Size)    case BuiltinType::Id:   #define  RVV_TYPE(Name, Id, SingletonId)   case BuiltinType::Id:   #define  WASM_TYPE(Name, Id, SingletonId)   case BuiltinType::Id:   #define  AMDGPU_TYPE(Name, Id, SingletonId, Width, Align)   case BuiltinType::Id:   #define  HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId)   case BuiltinType::Id:   ◆ ABSTRACT_TYPE [1/6] #define ABSTRACT_TYPE (   Class,   Parent  ) ◆ ABSTRACT_TYPE [2/6] #define ABSTRACT_TYPE (   Class,   Parent  ) ◆ ABSTRACT_TYPE [3/6] #define ABSTRACT_TYPE (   Class,   Parent  ) ◆ ABSTRACT_TYPE [4/6] #define ABSTRACT_TYPE (   Class,   Parent  ) ◆ ABSTRACT_TYPE [5/6] #define ABSTRACT_TYPE (   Class,   Parent  ) ◆ ABSTRACT_TYPE [6/6] #define ABSTRACT_TYPE (   Derived,   Base  ) ◆ AMDGPU_TYPE [1/2] #define AMDGPU_TYPE (   Name,   Id,   SingletonId,   Width,   Align  ) ◆ AMDGPU_TYPE [2/2] #define AMDGPU_TYPE (   Name,   Id,   SingletonId,   Width,   Align  )    case BuiltinType::Id: ◆ BUILTIN_TYPE #define BUILTIN_TYPE (   Id,   SingletonId  ) ◆ DEPENDENT_TYPE [1/3] ◆ DEPENDENT_TYPE [2/3] #define DEPENDENT_TYPE (   Class,   Base  )    case Type::Class:

Definition at line 980 of file Type.cpp.

◆ DEPENDENT_TYPE [3/3] #define DEPENDENT_TYPE (   Class,   Base  )    case Type::Class:

Definition at line 980 of file Type.cpp.

◆ EXT_OPAQUE_TYPE [1/2] #define EXT_OPAQUE_TYPE (   ExtType,   Id,   Ext  ) ◆ EXT_OPAQUE_TYPE [2/2] #define EXT_OPAQUE_TYPE (   ExtType,   Id,   Ext  )     case BuiltinType::Id: ◆ FLOATING_TYPE #define FLOATING_TYPE (   Id,   SingletonId  )    case BuiltinType::Id: ◆ HLSL_INTANGIBLE_TYPE [1/3] #define HLSL_INTANGIBLE_TYPE (   Name,   Id,   SingletonId  )    case BuiltinType::Id: ◆ HLSL_INTANGIBLE_TYPE [2/3] #define HLSL_INTANGIBLE_TYPE (   Name,   Id,   SingletonId  ) ◆ HLSL_INTANGIBLE_TYPE [3/3] #define HLSL_INTANGIBLE_TYPE (   Name,   Id,   SingletonId  )    case BuiltinType::Id: ◆ IMAGE_TYPE [1/2] #define IMAGE_TYPE (   ImgType,   Id,   SingletonId,   Access,   Suffix  ) Value:

return "__" #Access " " #ImgType "_t";

◆ IMAGE_TYPE [2/2] #define IMAGE_TYPE (   ImgType,   Id,   SingletonId,   Access,   Suffix  )     case BuiltinType::Id: ◆ NON_CANONICAL_TYPE [1/3] #define NON_CANONICAL_TYPE (   Class,   Base  )    case Type::Class: ◆ NON_CANONICAL_TYPE [2/3] #define NON_CANONICAL_TYPE (   Class,   Base  )    case Type::Class: ◆ NON_CANONICAL_TYPE [3/3] #define NON_CANONICAL_TYPE (   Class,   Parent  ) Value:

case Type::Class: \

llvm_unreachable("non-canonical type");

◆ NON_CANONICAL_UNLESS_DEPENDENT_TYPE [1/2] #define NON_CANONICAL_UNLESS_DEPENDENT_TYPE (   Class,   Base  )    case Type::Class: ◆ NON_CANONICAL_UNLESS_DEPENDENT_TYPE [2/2] #define NON_CANONICAL_UNLESS_DEPENDENT_TYPE (   Class,   Base  )    case Type::Class: ◆ PPC_VECTOR_TYPE [1/2] #define PPC_VECTOR_TYPE (   Name,   Id,   Size  ) ◆ PPC_VECTOR_TYPE [2/2] #define PPC_VECTOR_TYPE (   Name,   Id,   Size  )     case BuiltinType::Id: ◆ RVV_PREDICATE_TYPE [1/2] #define RVV_PREDICATE_TYPE (   Name,   Id,   SingletonId,   NumEls  ) Value:

case BuiltinType::Id: \

return true;

◆ RVV_PREDICATE_TYPE [2/2] #define RVV_PREDICATE_TYPE (   Name,   Id,   SingletonId,   NumEls  ) Value:

case BuiltinType::Id: \

CanQualType UnsignedCharTy

◆ RVV_TYPE [1/3] #define RVV_TYPE (   Name,   Id,   SingletonId  )    case BuiltinType::Id: ◆ RVV_TYPE [2/3] #define RVV_TYPE (   Name,   Id,   SingletonId  ) ◆ RVV_TYPE [3/3] #define RVV_TYPE (   Name,   Id,   SingletonId  )    case BuiltinType::Id: ◆ RVV_VECTOR_TYPE #define RVV_VECTOR_TYPE (   Name,   Id,   SingletonId,   NumEls,   ElBits,   NF,   IsSigned,   IsFP,   IsBF  ) Value:

case BuiltinType::Id: \

return NF == 1;

◆ SIGNED_TYPE #define SIGNED_TYPE (   Id,   SingletonId  )    case BuiltinType::Id: ◆ SUGARED_TYPE_CLASS #define SUGARED_TYPE_CLASS (   Class ) Value:

if (desugaredType.

isNull

()) \

return {}; \

return desugaredType; \

}

A (possibly-)qualified type.

bool isNull() const

Return true if this QualType doesn't point to a type yet.

void * getAsOpaquePtr() const

The base class of the type hierarchy.

const FunctionProtoType * T

@ Class

The "class" keyword introduces the elaborated-type-specifier.

Definition at line 986 of file Type.cpp.

◆ SVE_OPAQUE_TYPE #define SVE_OPAQUE_TYPE (   Name,   MangledName,   Id,   SingletonId  ) Value:

case BuiltinType::Id: \

return true;

◆ SVE_PREDICATE_TYPE #define SVE_PREDICATE_TYPE (   Name,   MangledName,   Id,   SingletonId  ) Value:

case BuiltinType::Id: \

return true;

◆ SVE_TYPE [1/3] #define SVE_TYPE (   Name,   Id,   SingletonId  ) ◆ SVE_TYPE [2/3] #define SVE_TYPE (   Name,   Id,   SingletonId  ) ◆ SVE_TYPE [3/3] #define SVE_TYPE (   Name,   Id,   SingletonId  )     case BuiltinType::Id: ◆ SVE_VECTOR_TYPE #define SVE_VECTOR_TYPE (   Name,   MangledName,   Id,   SingletonId  ) Value:

case BuiltinType::Id: \

return true;

◆ TRIVIAL_TYPE_CLASS ◆ TYPE [1/14] #define TYPE (   CLASS,   BASE  ) Value:

static_assert(!std::is_polymorphic<CLASS##Type>::value, \

#CLASS "Type should not be polymorphic!");

Definition at line 979 of file Type.cpp.

◆ TYPE [2/14] #define TYPE (   CLASS,   BASE  ) Value:

static_assert(std::is_trivially_destructible<CLASS##Type>::value, \

#CLASS "Type should be trivially destructible!");

Definition at line 979 of file Type.cpp.

◆ TYPE [3/14] ◆ TYPE [4/14] ◆ TYPE [5/14] ◆ TYPE [6/14] ◆ TYPE [7/14] ◆ TYPE [8/14] #define TYPE (   Class,   Parent  ) Value:

case Type::Class: { \

const auto *ty = cast<Class##Type>(this); \

}

return(__x > > __y)|(__x<<(32 - __y))

Definition at line 979 of file Type.cpp.

◆ TYPE [9/14] #define TYPE (   Class,   Parent  ) Value:

case Type::Class: { \

const auto *Ty = cast<Class##Type>(CurTy); \

if (!Ty->isSugared()) \

Cur = Ty->desugar(); \

break; \

}

A std::pair-like structure for storing a qualified type split into its local qualifiers and its local...

Definition at line 979 of file Type.cpp.

◆ TYPE [10/14] #define TYPE (   Class,   Parent  ) Value:

case Type::Class: { \

const auto *ty = cast<Class##Type>(split.Ty); \

if (!ty->isSugared()) goto done; \

next = ty->desugar(); \

break; \

}

Definition at line 979 of file Type.cpp.

◆ TYPE [11/14] #define TYPE (   Class,   Parent  ) Value:

case Type::Class: { \

const auto *Ty = cast<Class##Type>(Cur); \

if (!Ty->isSugared())

return

0; \

Cur = Ty->desugar().getTypePtr(); \

break; \

}

Definition at line 979 of file Type.cpp.

◆ TYPE [12/14] #define TYPE (   Class,   Parent  ) Value:

const auto *Ty = cast<Class##Type>(Cur); \

if (!Ty->isSugared())

return

Cur; \

Cur = Ty->desugar().getTypePtr(); \

break; \

}

Definition at line 979 of file Type.cpp.

◆ TYPE [13/14] ◆ TYPE [14/14] ◆ UNSIGNED_TYPE #define UNSIGNED_TYPE (   Id,   SingletonId  )    case BuiltinType::Id: ◆ WASM_TYPE [1/3] #define WASM_TYPE (   Name,   Id,   SingletonId  )    case BuiltinType::Id: ◆ WASM_TYPE [2/3] #define WASM_TYPE (   Name,   Id,   SingletonId  ) ◆ WASM_TYPE [3/3] #define WASM_TYPE (   Name,   Id,   SingletonId  )    case BuiltinType::Id: ◆ Cache ◆ computeCachedProperties() static CachedProperties computeCachedProperties ( const TypeT ) static ◆ getAsSugar()

template<typename T >

static const T * getAsSugar ( const TypeCur ) static

This will check for a T (which should be a Type which can act as sugar, such as a TypedefType) by removing any existing sugar until it reaches a T or a non-sugared type.

Definition at line 593 of file Type.cpp.

References clang::Type::getTypeClass().

◆ getInterestingTagDecl() ◆ getReplacedParameter() ◆ isTriviallyCopyableTypeImpl()

Definition at line 2749 of file Type.cpp.

References clang::Type::getAs(), clang::ASTContext::getBaseElementType(), clang::Type::isDependentType(), clang::Type::isIncompleteType(), clang::Type::isScalarType(), clang::Type::isSizelessBuiltinType(), isTriviallyCopyableTypeImpl(), clang::Type::isVectorType(), and clang::ast_matchers::type.

Referenced by clang::QualType::isTriviallyCopyableType(), isTriviallyCopyableTypeImpl(), and clang::QualType::isTriviallyCopyConstructibleType().


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