LLVM  8.0.1
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
ItaniumDemangle.h File Reference
#include "llvm/Demangle/Compiler.h"
#include "llvm/Demangle/StringView.h"
#include "llvm/Demangle/Utility.h"
#include <cassert>
#include <cctype>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <numeric>
#include <utility>
Include dependency graph for ItaniumDemangle.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::itanium_demangle::Node
 
class  llvm::itanium_demangle::NodeArray
 
struct  llvm::itanium_demangle::NodeArrayNode
 
class  llvm::itanium_demangle::DotSuffix
 
class  llvm::itanium_demangle::VendorExtQualType
 
class  llvm::itanium_demangle::QualType
 
class  llvm::itanium_demangle::ConversionOperatorType
 
class  llvm::itanium_demangle::PostfixQualifiedType
 
class  llvm::itanium_demangle::NameType
 
class  llvm::itanium_demangle::ElaboratedTypeSpefType
 
struct  llvm::itanium_demangle::AbiTagAttr
 
class  llvm::itanium_demangle::EnableIfAttr
 
class  llvm::itanium_demangle::ObjCProtoName
 
class  llvm::itanium_demangle::PointerType
 
class  llvm::itanium_demangle::ReferenceType
 
class  llvm::itanium_demangle::PointerToMemberType
 
class  llvm::itanium_demangle::NodeOrString
 
class  llvm::itanium_demangle::ArrayType
 
class  llvm::itanium_demangle::FunctionType
 
class  llvm::itanium_demangle::NoexceptSpec
 
class  llvm::itanium_demangle::DynamicExceptionSpec
 
class  llvm::itanium_demangle::FunctionEncoding
 
class  llvm::itanium_demangle::LiteralOperator
 
class  llvm::itanium_demangle::SpecialName
 
class  llvm::itanium_demangle::CtorVtableSpecialName
 
struct  llvm::itanium_demangle::NestedName
 
struct  llvm::itanium_demangle::LocalName
 
class  llvm::itanium_demangle::QualifiedName
 
class  llvm::itanium_demangle::VectorType
 
class  llvm::itanium_demangle::PixelVectorType
 
class  llvm::itanium_demangle::ParameterPack
 An unexpanded parameter pack (either in the expression or type context). More...
 
class  llvm::itanium_demangle::TemplateArgumentPack
 A variadic template argument. More...
 
class  llvm::itanium_demangle::ParameterPackExpansion
 A pack expansion. More...
 
class  llvm::itanium_demangle::TemplateArgs
 
struct  llvm::itanium_demangle::ForwardTemplateReference
 A forward-reference to a template argument that was not known at the point where the template parameter name was parsed in a mangling. More...
 
struct  llvm::itanium_demangle::NameWithTemplateArgs
 
class  llvm::itanium_demangle::GlobalQualifiedName
 
struct  llvm::itanium_demangle::StdQualifiedName
 
class  llvm::itanium_demangle::ExpandedSpecialSubstitution
 
class  llvm::itanium_demangle::SpecialSubstitution
 
class  llvm::itanium_demangle::CtorDtorName
 
class  llvm::itanium_demangle::DtorName
 
class  llvm::itanium_demangle::UnnamedTypeName
 
class  llvm::itanium_demangle::ClosureTypeName
 
class  llvm::itanium_demangle::StructuredBindingName
 
class  llvm::itanium_demangle::BinaryExpr
 
class  llvm::itanium_demangle::ArraySubscriptExpr
 
class  llvm::itanium_demangle::PostfixExpr
 
class  llvm::itanium_demangle::ConditionalExpr
 
class  llvm::itanium_demangle::MemberExpr
 
class  llvm::itanium_demangle::EnclosingExpr
 
class  llvm::itanium_demangle::CastExpr
 
class  llvm::itanium_demangle::SizeofParamPackExpr
 
class  llvm::itanium_demangle::CallExpr
 
class  llvm::itanium_demangle::NewExpr
 
class  llvm::itanium_demangle::DeleteExpr
 
class  llvm::itanium_demangle::PrefixExpr
 
class  llvm::itanium_demangle::FunctionParam
 
class  llvm::itanium_demangle::ConversionExpr
 
class  llvm::itanium_demangle::InitListExpr
 
class  llvm::itanium_demangle::BracedExpr
 
class  llvm::itanium_demangle::BracedRangeExpr
 
class  llvm::itanium_demangle::FoldExpr
 
class  llvm::itanium_demangle::ThrowExpr
 
class  llvm::itanium_demangle::BoolExpr
 
class  llvm::itanium_demangle::IntegerCastExpr
 
class  llvm::itanium_demangle::IntegerLiteral
 
struct  llvm::itanium_demangle::FloatData< Float >
 
class  llvm::itanium_demangle::FloatLiteralImpl< Float >
 
struct  llvm::itanium_demangle::NodeKind< NodeT >
 Determine the kind of a node from its type. More...
 
class  llvm::itanium_demangle::PODSmallVector< T, N >
 
struct  llvm::itanium_demangle::AbstractManglingParser< Derived, Alloc >
 
struct  llvm::itanium_demangle::AbstractManglingParser< Derived, Alloc >::NameState
 Holds some extra information about a <name> that is being parsed. More...
 
struct  llvm::itanium_demangle::FloatData< Float >
 
struct  llvm::itanium_demangle::FloatData< float >
 
struct  llvm::itanium_demangle::FloatData< double >
 
struct  llvm::itanium_demangle::FloatData< long double >
 
struct  llvm::itanium_demangle::ManglingParser< Alloc >
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::itanium_demangle
 
 llvm::itanium_demangle::float_literal_impl
 

Macros

#define FOR_EACH_NODE_KIND(X)
 
#define ENUMERATOR(NodeKind)   K ## NodeKind,
 
#define CASE(X)   case K ## X: return F(static_cast<const X*>(this));
 
#define SPECIALIZATION(X)
 

Typedefs

using llvm::itanium_demangle::FloatLiteral = FloatLiteralImpl< float >
 
using llvm::itanium_demangle::DoubleLiteral = FloatLiteralImpl< double >
 
using llvm::itanium_demangle::LongDoubleLiteral = FloatLiteralImpl< long double >
 

Enumerations

enum  llvm::itanium_demangle::FunctionRefQual : unsigned char { llvm::itanium_demangle::FrefQualNone, llvm::itanium_demangle::FrefQualLValue, llvm::itanium_demangle::FrefQualRValue }
 
enum  llvm::itanium_demangle::Qualifiers { llvm::itanium_demangle::QualNone = 0, llvm::itanium_demangle::QualConst = 0x1, llvm::itanium_demangle::QualVolatile = 0x2, llvm::itanium_demangle::QualRestrict = 0x4 }
 
enum  llvm::itanium_demangle::ReferenceKind { llvm::itanium_demangle::ReferenceKind::LValue, llvm::itanium_demangle::ReferenceKind::RValue }
 
enum  llvm::itanium_demangle::SpecialSubKind {
  llvm::itanium_demangle::SpecialSubKind::allocator, llvm::itanium_demangle::SpecialSubKind::basic_string, llvm::itanium_demangle::SpecialSubKind::string, llvm::itanium_demangle::SpecialSubKind::istream,
  llvm::itanium_demangle::SpecialSubKind::ostream, llvm::itanium_demangle::SpecialSubKind::iostream
}
 

Functions

Qualifiers llvm::itanium_demangle::operator|= (Qualifiers &Q1, Qualifiers Q2)
 
constexpr Node::Kind llvm::itanium_demangle::float_literal_impl::getFloatLiteralKind (float *)
 
constexpr Node::Kind llvm::itanium_demangle::float_literal_impl::getFloatLiteralKind (double *)
 
constexpr Node::Kind llvm::itanium_demangle::float_literal_impl::getFloatLiteralKind (long double *)
 
const charllvm::itanium_demangle::parse_discriminator (const char *first, const char *last)
 

Macro Definition Documentation

◆ CASE

#define CASE (   X)    case K ## X: return F(static_cast<const X*>(this));

◆ ENUMERATOR

#define ENUMERATOR (   NodeKind)    K ## NodeKind,

Definition at line 105 of file ItaniumDemangle.h.

◆ FOR_EACH_NODE_KIND

#define FOR_EACH_NODE_KIND (   X)

Definition at line 29 of file ItaniumDemangle.h.

Referenced by llvm::itanium_demangle::Node::visit().

◆ SPECIALIZATION

#define SPECIALIZATION (   X)
Value:
template<> struct NodeKind<X> { \
static constexpr Node::Kind Kind = Node::K##X; \
static constexpr const char *name() { return #X; } \
};
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang", "erlang-compatible garbage collector")
const unsigned Kind
static const char * name

Definition at line 2008 of file ItaniumDemangle.h.