[Issue 5275] New: x86_64 related hidden function parameter mishandled
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Nov 25 15:05:18 PST 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5275
Summary: x86_64 related hidden function parameter mishandled
Product: D
Version: D1 & D2
Platform: Other
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: braddr at puremagic.com
--- Comment #0 from Brad Roberts <braddr at puremagic.com> 2010-11-25 15:03:52 PST ---
(split off from bug 5264)
module hrm;
struct BlkInfo { size_t size; }
extern (C) BlkInfo gc_qalloc();
void __setArrayAllocLength(ref BlkInfo info)
{
if(info.size) {}
}
extern (C) void foo()
{
BlkInfo info = gc_qalloc();
__setArrayAllocLength(info);
}
$ dmd -m64 -c hrm.d
Internal error: backend/cod1.c 2554
(same error and line number for both dmd1 and dmd2 from tip of svn for both)
call cleanup code in cod1.c funccall():
2936 if (tym1 == TYhfunc)
2937 { // Hidden parameter is popped off by the callee
2938 c = genadjesp(c, -4);
2939 stackpush -= 4;
This code isn't aware of the 32 vs 64 bit calling convention differences yet?
--
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