Thread overview
[Issue 1311] New: DMD 1.018: Fix for bug657 breaks other code
Jul 03, 2007
d-bugmail
Jul 03, 2007
d-bugmail
Jul 04, 2007
d-bugmail
Oct 05, 2007
d-bugmail
Aug 06, 2009
Don
July 03, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1311

           Summary: DMD 1.018: Fix for bug657 breaks other code
           Product: D
           Version: unspecified
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: critical
          Priority: P1
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: aldacron@gmail.com


The following worked for over three years until DMD 1.018:

####################
version(Windows)
    extern(Windows):
else
    extern(C):

typedef void function() foo;
...
#####################

Compilation with DMD 1.018 results in the following error:

"Declaration expected, not 'else'"

Adding brackets compiles successfully:

####################
version(Windows)
{
    extern(Windows):
}
else
{
    extern(C):
}

typedef void function() foo;
...
#####################

Unfortunately, this form causes the executable to crash on both Windows and Linux. It appears the extern statements are being ignored.

This affects several packages in Derelict, causing them to be unusable with 1.018 without a rather large rewrite. I assume this is a result of the fix for bug657.


-- 

July 03, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1311


deewiant@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |regression




-- 

July 04, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1311


clayasaurus@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clayasaurus@gmail.com




------- Comment #1 from clayasaurus@gmail.com  2007-07-03 20:45 -------
This bug is blocking the Arc v.2 release.


-- 

October 05, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1311


tomas@famolsen.dk changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tomas@famolsen.dk




------- Comment #2 from tomas@famolsen.dk  2007-10-05 09:47 -------
According to the changelog for DMD 0.74:
* Version declarations can now wrap attribute : and they'll stick.

Why did this feature suddenly turn into a bug?


-- 

August 06, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1311


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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |clugdbug@yahoo.com.au
         Resolution|                            |FIXED




--- Comment #3 from Don <clugdbug@yahoo.com.au>  2009-08-06 13:13:18 PDT ---
The functionality was restored by introducing extern(System) for exactly this situation. I'll mark this as fixed.

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