[Issue 11696] New: C++ incorrect static member mangling

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Dec 6 01:40:57 PST 2013


https://d.puremagic.com/issues/show_bug.cgi?id=11696

           Summary: C++ incorrect static member mangling
           Product: D
           Version: D1 & D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: ibuclaw at ubuntu.com


--- Comment #0 from Iain Buclaw <ibuclaw at ubuntu.com> 2013-12-06 01:40:56 PST ---
class.d:
---
class Expression;
struct Loc { }

extern(C++)
class CallExp
{
    static CallExp *factory(Loc, Expression, Expression)
    {
      assert(0);
    }
}

class.cc
---
class Expression;
struct Loc { };

class CallExp
{
  public:
    static CallExp *factory(Loc, Expression*, Expression*);
};

CallExp *CallExp::factory(Loc, Expression*, Expression*) { }


G++ produces the following mangled symbol for factory:
_ZN7CallExp7factoryE3LocP10ExpressionS2_

Whereas cppmangle in the dfrontend produces:
_ZN7CallExp7factoryE3LocP10ExpressionS1_

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


More information about the Digitalmars-d-bugs mailing list