Summary: Undocumented mangling of struct value
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: spec
          Severity: normal
          Priority: P2
         Component: websites

--- Comment #0 from 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:


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 

     '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:
------- You are receiving this mail because: -------

Reply via email to