parent
03656162a3
commit
e8d762e148
|
@ -42,8 +42,8 @@ using namespace clang;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
/// \brief Retrieve the declaration context that should be used when mangling
|
/// Retrieve the declaration context that should be used when mangling the given
|
||||||
/// the given declaration.
|
/// declaration.
|
||||||
static const DeclContext *getEffectiveDeclContext(const Decl *D) {
|
static const DeclContext *getEffectiveDeclContext(const Decl *D) {
|
||||||
// The ABI assumes that lambda closure types that occur within
|
// The ABI assumes that lambda closure types that occur within
|
||||||
// default arguments live in the context of the function. However, due to
|
// default arguments live in the context of the function. However, due to
|
||||||
|
@ -210,7 +210,7 @@ public:
|
||||||
/// @}
|
/// @}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// CXXNameMangler - Manage the mangling of a single name.
|
/// Manage the mangling of a single name.
|
||||||
class CXXNameMangler {
|
class CXXNameMangler {
|
||||||
ItaniumMangleContextImpl &Context;
|
ItaniumMangleContextImpl &Context;
|
||||||
raw_ostream &Out;
|
raw_ostream &Out;
|
||||||
|
@ -221,7 +221,7 @@ class CXXNameMangler {
|
||||||
const NamedDecl *Structor;
|
const NamedDecl *Structor;
|
||||||
unsigned StructorType;
|
unsigned StructorType;
|
||||||
|
|
||||||
/// SeqID - The next substitution sequence number.
|
/// The next substitution sequence number.
|
||||||
unsigned SeqID;
|
unsigned SeqID;
|
||||||
|
|
||||||
class FunctionTypeDepthState {
|
class FunctionTypeDepthState {
|
||||||
|
@ -536,7 +536,7 @@ static const DeclContext *IgnoreLinkageSpecDecls(const DeclContext *DC) {
|
||||||
return DC;
|
return DC;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// isStd - Return whether a given namespace is the 'std' namespace.
|
/// Return whether a given namespace is the 'std' namespace.
|
||||||
static bool isStd(const NamespaceDecl *NS) {
|
static bool isStd(const NamespaceDecl *NS) {
|
||||||
if (!IgnoreLinkageSpecDecls(getEffectiveParentContext(NS))
|
if (!IgnoreLinkageSpecDecls(getEffectiveParentContext(NS))
|
||||||
->isTranslationUnit())
|
->isTranslationUnit())
|
||||||
|
@ -3640,8 +3640,8 @@ bool CXXNameMangler::mangleSubstitution(const NamedDecl *ND) {
|
||||||
return mangleSubstitution(reinterpret_cast<uintptr_t>(ND));
|
return mangleSubstitution(reinterpret_cast<uintptr_t>(ND));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \brief Determine whether the given type has any qualifiers that are
|
/// Determine whether the given type has any qualifiers that are relevant for
|
||||||
/// relevant for substitutions.
|
/// substitutions.
|
||||||
static bool hasMangledSubstitutionQualifiers(QualType T) {
|
static bool hasMangledSubstitutionQualifiers(QualType T) {
|
||||||
Qualifiers Qs = T.getQualifiers();
|
Qualifiers Qs = T.getQualifiers();
|
||||||
return Qs.getCVRQualifiers() || Qs.hasAddressSpace();
|
return Qs.getCVRQualifiers() || Qs.hasAddressSpace();
|
||||||
|
@ -3687,8 +3687,8 @@ static bool isCharType(QualType T) {
|
||||||
T->isSpecificBuiltinType(BuiltinType::Char_U);
|
T->isSpecificBuiltinType(BuiltinType::Char_U);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// isCharSpecialization - Returns whether a given type is a template
|
/// Returns whether a given type is a template specialization of a given name
|
||||||
/// specialization of a given name with a single argument of type char.
|
/// with a single argument of type char.
|
||||||
static bool isCharSpecialization(QualType T, const char *Name) {
|
static bool isCharSpecialization(QualType T, const char *Name) {
|
||||||
if (T.isNull())
|
if (T.isNull())
|
||||||
return false;
|
return false;
|
||||||
|
@ -3838,8 +3838,8 @@ void CXXNameMangler::addSubstitution(uintptr_t Ptr) {
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
/// \brief Mangles the name of the declaration D and emits that name to the
|
/// Mangles the name of the declaration D and emits that name to the given
|
||||||
/// given output stream.
|
/// output stream.
|
||||||
///
|
///
|
||||||
/// If the declaration D requires a mangled name, this routine will emit that
|
/// If the declaration D requires a mangled name, this routine will emit that
|
||||||
/// mangled name to \p os and return true. Otherwise, \p os will be unchanged
|
/// mangled name to \p os and return true. Otherwise, \p os will be unchanged
|
||||||
|
@ -3931,8 +3931,7 @@ void ItaniumMangleContextImpl::mangleCXXDtorThunk(
|
||||||
Mangler.mangleFunctionEncoding(DD);
|
Mangler.mangleFunctionEncoding(DD);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// mangleGuardVariable - Returns the mangled name for a guard variable
|
/// Returns the mangled name for a guard variable for the passed in VarDecl.
|
||||||
/// for the passed in VarDecl.
|
|
||||||
void ItaniumMangleContextImpl::mangleStaticGuardVariable(const VarDecl *D,
|
void ItaniumMangleContextImpl::mangleStaticGuardVariable(const VarDecl *D,
|
||||||
raw_ostream &Out) {
|
raw_ostream &Out) {
|
||||||
// <special-name> ::= GV <object name> # Guard variable for one-time
|
// <special-name> ::= GV <object name> # Guard variable for one-time
|
||||||
|
|
Loading…
Reference in New Issue