clang 22.0.0git
Mangle.cpp File Reference
#include "clang/AST/Mangle.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/VTableBuilder.h"
#include "clang/Basic/ABI.h"
#include "clang/Basic/TargetInfo.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Mangler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"

Go to the source code of this file.

Classes

class  clang::ASTNameGenerator::Implementation

Enumerations

enum  CCMangling {
  CCM_Other , CCM_Fast , CCM_RegCall , CCM_Vector ,
  CCM_Std , CCM_WasmMainArgcArgv
}

Functions

static void mangleFunctionBlock (MangleContext &Context, StringRef Outer, const BlockDecl *BD, raw_ostream &Out)
static bool isExternC (const NamedDecl *ND)
static CCMangling getCallingConvMangling (const ASTContext &Context, const NamedDecl *ND)
static void emitLLDBAsmLabel (llvm::StringRef label, GlobalDecl GD, llvm::raw_ostream &Out)
 Given an LLDB function call label, this function prints the label into Out, together with the structor type of GD (if the decl is a constructor/destructor).

Variables

static llvm::StringRef g_lldb_func_call_label_prefix = "$__lldb_func:"

Enumeration Type Documentation

◆ CCMangling

enum CCMangling
Enumerator
CCM_Other 
CCM_Fast 
CCM_RegCall 
CCM_Vector 
CCM_Std 
CCM_WasmMainArgcArgv 

Definition at line 65 of file Mangle.cpp.

Function Documentation

◆ emitLLDBAsmLabel()

void emitLLDBAsmLabel ( llvm::StringRef label,
GlobalDecl GD,
llvm::raw_ostream & Out )
static

Given an LLDB function call label, this function prints the label into Out, together with the structor type of GD (if the decl is a constructor/destructor).

LLDB knows how to handle mangled names with this encoding.

Example input label: $__lldb_func::123:456:~Foo

Example output: $__lldb_func:D1:123:456:~Foo

Definition at line 168 of file Mangle.cpp.

References g_lldb_func_call_label_prefix, clang::GlobalDecl::getCtorType(), clang::GlobalDecl::getDecl(), and clang::GlobalDecl::getDtorType().

Referenced by clang::MangleContext::mangleName().

◆ getCallingConvMangling()

◆ isExternC()

bool isExternC ( const NamedDecl * ND)
static

Definition at line 74 of file Mangle.cpp.

Referenced by checkUsingShadowRedecl(), and getCallingConvMangling().

◆ mangleFunctionBlock()

void mangleFunctionBlock ( MangleContext & Context,
StringRef Outer,
const BlockDecl * BD,
raw_ostream & Out )
static

Variable Documentation

◆ g_lldb_func_call_label_prefix

llvm::StringRef g_lldb_func_call_label_prefix = "$__lldb_func:"
static

Definition at line 155 of file Mangle.cpp.

Referenced by emitLLDBAsmLabel(), and clang::MangleContext::mangleName().