# dmd.dmangle

Does name mangling for `extern(D)` symbols.

Specification: Name Mangling

#### Authors

Walter Bright, http://www.digitalmars.com

#### License

Boost License 1.0

Source: dmangle.d

Documentation: https://dlang.org/phobos/dmd_dmangle.html

Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dmangle.d

References: https://dlang.org/blog/2017/12/20/ds-newfangled-name-mangling/

- `isValidMangling`

  #### Declaration

  `package nothrow bool `isValidMangling`(dchar `c`);`

  #### Return Value

  `true` if the given character is a valid mangled character

- `mangleExact`

  #### Declaration

  `const(char)* `mangleExact`(FuncDeclaration `fd`);`

  Returns exact mangled name of function.

- `mangleToFuncSignature`

  #### Declaration

  `void `mangleToFuncSignature`(ref OutBuffer `buf`, FuncDeclaration `fd`);`

  Mangle function signatures ('this' qualifier, and parameter types) to check conflicts in function overloads. It's different from `fd`.type.deco. For example, `fd`.type.deco would be `null` if `fd` is an auto function.

  #### Parameters

  `OutBuffer `buf`` | `OutBuffer` to write the mangled function signature to
  `FuncDeclaration `fd`` | `FuncDeclaration` to mangle