1  
       2  /* Compiler implementation of the D programming language
       3   * Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
       4   * written by Walter Bright
       5   * https://www.digitalmars.com
       6   * Distributed under the Boost Software License, Version 1.0.
       7   * https://www.boost.org/LICENSE_1_0.txt
       8   * https://github.com/dlang/dmd/blob/master/src/dmd/mangle.h
       9   */
      10  
      11  #pragma once
      12  
      13  class Dsymbol;
      14  class Expression;
      15  class FuncDeclaration;
      16  class TemplateInstance;
      17  class Type;
      18  struct OutBuffer;
      19  
      20  // In cppmangle.d
      21  const char *toCppMangleItanium(Dsymbol *s);
      22  const char *cppTypeInfoMangleItanium(Dsymbol *s);
      23  const char *cppThunkMangleItanium(FuncDeclaration *fd, int offset);
      24  
      25  // In cppmanglewin.d
      26  const char *toCppMangleMSVC(Dsymbol *s);
      27  const char *cppTypeInfoMangleMSVC(Dsymbol *s);
      28  
      29  // In dmangle.d
      30  const char *mangleExact(FuncDeclaration *fd);
      31  void mangleToBuffer(Type *s, OutBuffer *buf);
      32  void mangleToBuffer(Expression *s, OutBuffer *buf);
      33  void mangleToBuffer(Dsymbol *s, OutBuffer *buf);
      34  void mangleToBuffer(TemplateInstance *s, OutBuffer *buf);