From ec2b103c267a06a66e926f62cd96767b280f5cf5 Mon Sep 17 00:00:00 2001 From: Ed Schouten Date: Tue, 2 Jun 2009 17:58:47 +0000 Subject: Import Clang, at r72732. --- lib/CodeGen/Mangle.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 lib/CodeGen/Mangle.h (limited to 'lib/CodeGen/Mangle.h') diff --git a/lib/CodeGen/Mangle.h b/lib/CodeGen/Mangle.h new file mode 100644 index 000000000000..77cbd9775191 --- /dev/null +++ b/lib/CodeGen/Mangle.h @@ -0,0 +1,44 @@ +//===--- Mangle.h - Mangle C++ Names ----------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// Implements C++ name mangling according to the Itanium C++ ABI, +// which is used in GCC 3.2 and newer (and many compilers that are +// ABI-compatible with GCC): +// +// http://www.codesourcery.com/public/cxx-abi/abi.html +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_CODEGEN_MANGLE_H +#define LLVM_CLANG_CODEGEN_MANGLE_H + +#include "CGCXX.h" + +namespace llvm { + class raw_ostream; +} + +namespace clang { + class ASTContext; + class CXXConstructorDecl; + class CXXDestructorDecl; + class NamedDecl; + class VarDecl; + + bool mangleName(const NamedDecl *D, ASTContext &Context, + llvm::raw_ostream &os); + void mangleGuardVariable(const VarDecl *D, ASTContext &Context, + llvm::raw_ostream &os); + void mangleCXXCtor(const CXXConstructorDecl *D, CXXCtorType Type, + ASTContext &Context, llvm::raw_ostream &os); + void mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type, + ASTContext &Context, llvm::raw_ostream &os); +} + +#endif -- cgit v1.3