www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1197] New: regression: "static if" + enum.max/enum.min causes compile time segfault

reply d-bugmail puremagic.com writes:
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


-- 
Apr 27 2007
next sibling parent d-bugmail puremagic.com writes:
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.


-- 
Apr 03 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
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!


-- 
Apr 04 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
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. --
Apr 04 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
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: -------
Sep 18 2009
prev sibling parent d-bugmail puremagic.com writes:
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: -------
Aug 31 2010