[Issue 5956] New: Undocumented mangling of struct value

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun May 8 07:42:18 PDT 2011


http://d.puremagic.com/issues/show_bug.cgi?id=5956

           Summary: Undocumented mangling of struct value
           Product: D
           Version: D2
          Platform: All
               URL: http://d-programming-language.org/abi.html
        OS/Version: All
            Status: NEW
          Keywords: spec
          Severity: normal
          Priority: P2
         Component: websites
        AssignedTo: nobody at puremagic.com
        ReportedBy: kennytm at gmail.com


--- Comment #0 from kennytm at gmail.com 2011-05-08 07:38:22 PDT ---
Consider the program:

----------------------------------------
module y;
template fffff(alias s) {
    void fffff() {
    }
}
struct U {
    int v;
}
void main() {
    fffff!( U(4) )();
}
----------------------------------------

The mangled symbol of fffff!( U(4) ) is:

    _D1y20__T5fffffVS1y1US1i4Z5fffffFZv

which means 

    _D          (MangledName)
      1y        (LName: y)
      20__T     (TemplateInstanceName)
        5fffff  (LName: fffff)
        V       (TemplateArg: value)
         S      (TypeStruct)
          1y    (LName: y)
          1U    (LName: U)
         S1     (***UNDOCUMENTED*** struct value with 1 argument)
           i4   (integer: 4)
        Z       (end of TemplateInstanceName)
      5fffff    (LName: fffff)
      FZv       (TypeFunction: void _())

Above, the mangling 

Value:
     'S' Number Value...

is not documented at all. The D spec should mention it.

(Also, the spec should also mention 'A Number Value...' can represent
associative array literal as well.)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list