Functions | |
std::string | getLinkName (const SubroutineDecl *sr) |
Returns the name of the given subroutine as it should appear in LLVM IR. | |
std::string | getLinkName (const DomainInstanceDecl *instance, const SubroutineDecl *sr) |
std::string | getLinkName (const Domoid *domoid) |
Returns the name of the given Domoid as it should appear in LLVM IR. | |
std::string | getLinkName (const DomainInstanceDecl *instance) |
Returns the name of the given domain instance as it should appear in LLVM IR. | |
std::string | getLinkName (const ExceptionDecl *exception) |
Returns the name of the given exception declaration as it should appear in LLVM IR. |
std::string comma::mangle::getLinkName | ( | const ExceptionDecl * | exception | ) |
Returns the name of the given exception declaration as it should appear in LLVM IR.
Definition at line 286 of file Mangle.cpp.
std::string comma::mangle::getLinkName | ( | const DomainInstanceDecl * | instance | ) |
Returns the name of the given domain instance as it should appear in LLVM IR.
Definition at line 261 of file Mangle.cpp.
std::string comma::mangle::getLinkName | ( | const Domoid * | domoid | ) |
Returns the name of the given Domoid as it should appear in LLVM IR.
Definition at line 256 of file Mangle.cpp.
std::string comma::mangle::getLinkName | ( | const DomainInstanceDecl * | instance, | |
const SubroutineDecl * | sr | |||
) |
Definition at line 214 of file Mangle.cpp.
std::string comma::mangle::getLinkName | ( | const SubroutineDecl * | sr | ) |
Returns the name of the given subroutine as it should appear in LLVM IR.
The conventions followed by Comma model those of Ada. In particular, a subroutines link name is similar to its fully qualified name, except that the dot is replaced by an underscore, and overloaded names are identified using a postfix number. For example, the Comma name "D.Foo" is translated into "D__Foo" and subsequent overloads are translated into "D__Foo__1", "D__Foo__2", etc. Operator names like "*" or "+" are given names beginning with a zero followed by a spelled out alternative. For example, "*" translates into "0multiply" and "+" translates into "0plus" (with appropriate qualification prefix and overload suffix).
Definition at line 235 of file Mangle.cpp.