mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-04 17:11:44 +03:00

Windows x64 ABI: remove unnecessary \01 from mangled symbol name. This removes the 0x1 byte from `.mangleof` accessible from user code. Resolves issue #1519 Also let mangleForLLVM take a std::string, to enable C++11's moves.
31 lines
1,007 B
C++
31 lines
1,007 B
C++
//===-- mangling.h --------------------------------------------------------===//
|
||
//
|
||
// LDC – the LLVM D compiler
|
||
//
|
||
// This file is distributed under the BSD-style LDC license. See the LICENSE
|
||
// file for details.
|
||
//
|
||
//===----------------------------------------------------------------------===//
|
||
//
|
||
// Tries to centralize functionality for mangling of symbols.
|
||
//
|
||
//===----------------------------------------------------------------------===//
|
||
|
||
#ifndef LDC_GEN_MANGLING_H
|
||
#define LDC_GEN_MANGLING_H
|
||
|
||
#include <string>
|
||
#include "ddmd/globals.h"
|
||
|
||
class AggregateDeclaration;
|
||
class FuncDeclaration;
|
||
class VarDeclaration;
|
||
|
||
std::string getMangledName(FuncDeclaration *fdecl, LINK link);
|
||
std::string getMangledName(VarDeclaration *vd);
|
||
|
||
std::string getMangledInitSymbolName(AggregateDeclaration *aggrdecl);
|
||
std::string getMangledVTableSymbolName(AggregateDeclaration *aggrdecl);
|
||
std::string getMangledClassInfoSymbolName(AggregateDeclaration *aggrdecl);
|
||
|
||
#endif // LDC_GEN_MANGLING_H
|