Thread overview
[Issue 1197] New: regression: "static if" + enum.max/enum.min causes compile time segfault
Apr 27, 2007
d-bugmail
[Issue 1197] regression: "static if" + enum.max/enum.min doesn't compile
Apr 03, 2009
d-bugmail
Apr 04, 2009
d-bugmail
Apr 04, 2009
d-bugmail
Sep 18, 2009
Rainer Schuetze
[Issue 1197] "static if" + enum.max/enum.min doesn't compile (D1 only)
Aug 31, 2010
Don
April 27, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1197

           Summary: regression: "static if" + enum.max/enum.min causes
                    compile time segfault
           Product: D
           Version: 1.013
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P3
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: thomas-dloop@kuehne.cn


# const int[E.max] array;
#
# enum E{
#    A = 1,
#    B,
#    C
# }
#
# int main(){
#    static if(E.max == 3){
#       static if(array.length == 3){
#          return 0;
#       }
#    }
# }

test cases:
http://dstress.kuehne.cn/run/e/enum_43_A.d
http://dstress.kuehne.cn/run/e/enum_43_B.d
http://dstress.kuehne.cn/run/e/enum_43_G.d
http://dstress.kuehne.cn/run/e/enum_43_H.d


-- 

April 03, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1197


clugdbug@yahoo.com.au changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|ice-on-valid-code           |
            Summary|regression: "static if" +   |regression: "static if" +
                   |enum.max/enum.min causes    |enum.max/enum.min doesn't
                   |compile time segfault       |compile




------- Comment #1 from clugdbug@yahoo.com.au  2009-04-03 06:05 -------
No longer segfaults on DMD1.042 and 2.027 -- now generates a "forward reference" error message. This is still a regression.


-- 

April 04, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1197


smjg@iname.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |smjg@iname.com
           Keywords|                            |rejects-valid




------- Comment #2 from smjg@iname.com  2009-04-04 08:59 -------
Then don't just delete the keyword - assign the correct one!


-- 

April 04, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1197





------- Comment #3 from clugdbug@yahoo.com.au  2009-04-04 10:17 -------
(In reply to comment #2)
> Then don't just delete the keyword - assign the correct one!
> 

I thought of doing that, but 'regression' normally applies to valid code. Regression of invalid code is a hundred times less serious. So I added the 'regression' to the description, rather than the severity.


-- 

September 18, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1197


Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |r.sagitario@gmx.de


--- Comment #4 from Rainer Schuetze <r.sagitario@gmx.de> 2009-09-18 01:41:45 PDT ---
Works for DMD 2.032 here, but not for DMD 1.047

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
August 31, 2010
http://d.puremagic.com/issues/show_bug.cgi?id=1197


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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|regression(D1 only):        |"static if" +
                   |"static if" +               |enum.max/enum.min doesn't
                   |enum.max/enum.min doesn't   |compile (D1 only)
                   |compile                     |
           Severity|regression                  |normal


--- Comment #5 from Don <clugdbug@yahoo.com.au> 2010-08-31 03:33:48 PDT ---
The fact that it doesn't work on D1 isn't actually a regression. The regression
was fixed in 1.021-1.023.
It never actually worked on D1. Here's the full behaviour:
Segfault on 0.140, forward reference error 0.150-1.010, segfault 1.013-1.020,
forward reference error 1.023-present.

Segfault 2.000, forward reference 2.012-2.030, works 2.031- present.

Downgrading to normal.

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