digitalmars.D.bugs - [Issue 5148] New: Incorrect C++ mangling of multiple const char* parameters
- d-bugmail puremagic.com (25/25) Nov 01 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5148
- d-bugmail puremagic.com (10/10) Nov 03 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5148
- d-bugmail puremagic.com (10/10) Nov 10 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5148
- d-bugmail puremagic.com (7/7) Nov 11 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5148
- d-bugmail puremagic.com (29/29) Nov 11 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5148
- d-bugmail puremagic.com (7/7) Nov 12 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5148
- d-bugmail puremagic.com (23/23) Nov 12 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5148
- d-bugmail puremagic.com (11/11) Nov 18 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5148
http://d.puremagic.com/issues/show_bug.cgi?id=5148
Summary: Incorrect C++ mangling of multiple const char*
parameters
Product: D
Version: D2
Platform: Other
OS/Version: Mac OS X
Status: NEW
Severity: blocker
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: doob me.com
DMD incorrectly mangles the following function:
extern (C++) void error (const char*, const char*) {}
DMD mangling: __Z5errorPKcS_
GCC mangling: __Z5errorPKcS0_
It has to be at least two parameters, not the first parameter and any of the
other parameters have to be const char*.
I don't know if this is the same bug as 4059 but that one doesn't mention
const. This is also a blocker for DDMD on Posix.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 01 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5148
Lukasz Wrzosek <luk.wrzosek gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |luk.wrzosek gmail.com
PDT ---
See bug 4059 for patch.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 03 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5148
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bugzilla digitalmars.com
01:23:36 PST ---
The patch for 4059 does not work for this one.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 10 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5148 PST --- Created an attachment (id=806) Fix for bug 5148 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 11 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5148
Iain Buclaw <ibuclaw ubuntu.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ibuclaw ubuntu.com
That's not really a proper fix.
Yes, it works for this original example in this report, however it doesn't pass
this test:
extern (C++) void bug5148a(char*, char*, char*, char*);
extern (C++) void bug5148b(char*, char*, char*, const char*);
extern (C++) void bug5148c(char*, char*, const char*, char*);
extern (C++) void bug5148d(char*, char*, const char*, const char*);
extern (C++) void bug5148e(char*, const char*, char*, char*);
extern (C++) void bug5148f(char*, const char*, char*, const char*);
extern (C++) void bug5148g(char*, const char*, const char*, char*);
extern (C++) void bug5148h(char*, const char*, const char*, const char*);
extern (C++) void bug5148i(const char*, char*, char*, char*);
extern (C++) void bug5148j(const char*, char*, char*, const char*);
extern (C++) void bug5148k(const char*, char*, const char*, char*);
extern (C++) void bug5148l(const char*, char*, const char*, const char*);
extern (C++) void bug5148m(const char*, const char*, char*, char*);
extern (C++) void bug5148n(const char*, const char*, char*, const char*);
extern (C++) void bug5148o(const char*, const char*, const char*, char*);
extern (C++) void bug5148p(const char*, const char*, const char*, const char*);
Regards
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 11 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5148 Apparently I didn't test it against the patch against the trunk last night. :~) It seems fine now I've rebuilt it. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 12 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5148
Lukasz Wrzosek <luk.wrzosek gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
obsolete| |
PST ---
Created an attachment (id=807)
Fix for bug 5148 and some other fixes.
This patch fixes also some other issues that I think weren't reported up to
now.
In gcc c++ functions with const arguments passed by value are mangled like not
const:
void Test(const int, const int) -> _Z4Testii
void Test(const char, const char) -> _Z4Testcc
struct MyStrutType { };
void Test(const MyStructType, const MyStructType) -> _Z4Test12MyStructTypeS_
enum MyEnumType { };
void Test(const MyEnumType, const MyEnumType) -> _Z4Test10MyEnumTypeS_
Without this patch dmd generates const versions.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 12 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5148
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
20:07:33 PST ---
http://www.dsource.org/projects/dmd/changeset/762
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 18 2010









d-bugmail puremagic.com 