2001-10-28 23:31:10 +00:00
|
|
|
//===- llvm/Support/NameMangling.h - Name Mangling for LLVM ------*- C++ -*--=//
|
|
|
|
//
|
|
|
|
// This file implements a consistent scheme for name mangling symbols.
|
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
#ifndef LLVM_SUPPORT_NAMEMANGLING_H
|
|
|
|
#define LLVM_SUPPORT_NAMEMANGLING_H
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
class Type;
|
|
|
|
class Value;
|
|
|
|
|
|
|
|
// MangleTypeName - Implement a consistent name-mangling scheme for
|
|
|
|
// a given type.
|
|
|
|
//
|
2002-01-20 22:54:45 +00:00
|
|
|
std::string MangleTypeName(const Type *type);
|
2001-10-28 23:31:10 +00:00
|
|
|
|
|
|
|
// MangleName - implement a consistent name-mangling scheme for all
|
|
|
|
// externally visible (i.e., global) objects.
|
|
|
|
//
|
|
|
|
// privateName should be unique within the module.
|
|
|
|
//
|
2002-01-20 22:54:45 +00:00
|
|
|
std::string MangleName(const std::string &privateName, const Value *V);
|
2001-10-28 23:31:10 +00:00
|
|
|
|
|
|
|
#endif
|
|
|
|
|