Thread overview
[Issue 3422] New: Structs with default initializers bigger than register size cannot be default parameters
Oct 20, 2009
Don
[Issue 3422] ICE(cgcod.c) Structs with default initializers bigger than register size cannot be default parameters
Oct 20, 2009
Don
Oct 20, 2009
Don
Nov 01, 2009
Kosmonaut
Nov 06, 2009
Walter Bright
October 20, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3422

           Summary: Structs with default initializers bigger than register
                    size cannot be default parameters
           Product: D
           Version: 2.035
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: Justin.SpahrSummers@gmail.com


--- Comment #0 from Justin Spahr-Summers <Justin.SpahrSummers@gmail.com> 2009-10-20 03:52:50 CDT ---
struct S {
    // works with double and long as well
    real a = 0, b = 0;
}

void func (S s = S()) {
    writefln("hello world");
}

void main () {
    func();
}

It appears that using "= S()" as a default parameter causes a compiler error if
S contains default initializers for types larger than a register (32 bits, e.g.
double, real, and long).

Full compiler error is "Internal error: ..\ztc\cgcod.c 1594"

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 20, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3422


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clugdbug@yahoo.com.au


--- Comment #1 from Don <clugdbug@yahoo.com.au> 2009-10-20 02:09:16 PDT ---
This is the same as

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 20, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3422


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
            Version|2.035                       |1.020
            Summary|Structs with default        |ICE(cgcod.c) Structs with
                   |initializers bigger than    |default initializers bigger
                   |register size cannot be     |than register size cannot
                   |default parameters          |be default parameters


--- Comment #2 from Don <clugdbug@yahoo.com.au> 2009-10-20 02:13:11 PDT ---
This may have the same root cause as bug 2437 and bug 2935.
It also applies to D1, at least as far back as 1.020 (but didn't compile at all
in 1.010), so not a regression.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 20, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3422


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch


--- Comment #3 from Don <clugdbug@yahoo.com.au> 2009-10-20 12:19:12 PDT ---
The patch in bug 3426 fixes this (they are not the same bug, but are closely
related).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 01, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3422


Kosmonaut <Kosmonaut@tempinbox.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |Kosmonaut@tempinbox.com


--- Comment #4 from Kosmonaut <Kosmonaut@tempinbox.com> 2009-10-31 21:30:25 PDT ---
Fixed in SVN Repository: http://www.dsource.org/projects/dmd/changeset/230

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 06, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3422


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla@digitalmars.com
         Resolution|                            |FIXED


--- Comment #5 from Walter Bright <bugzilla@digitalmars.com> 2009-11-06 11:31:24 PST ---
Fixed dmd 1.051 and 2.036

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