comma::mangle Namespace Reference

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.

Function Documentation

std::string comma::mangle::getLinkName ( const ExceptionDecl exception  ) 

Returns the name of the given exception declaration as it should appear in LLVM IR.

Note:
This routine can only be called on user defined exceptions. The names of system exceptions are defined by the runtime library and accessed thru CommaRT exclusively.

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.


Generated on 1 Feb 2010 for Comma by  doxygen 1.6.1