Sd - Microsoft Compiler Bugs


Microsoft Visual C++, professional edition, version 6.0, service pack 5, has a bug that renders it unfit for compiling Sd or Sdtty. See the release notes for version 34.7 for technical details of the bug. (Briefly, the compiled program would crash on a "snag bits and pieces".) This bug does not affect users, because this compiler has never been used, and never will be used, for compiling the distributed version of Sd.

This bug was reported to Microsoft on 17 December 2001. More than one year later, the following mail was sent to Microsoft management:

Subject: Extremely serious compiler bug in Visual C++ version 6.0, SP5
   Date: Thu, 6 Feb 2003 19:04:29 -0500 (Eastern Standard Time)
   From: William Ackerman 
     To: microsoft managers 
     CC: wba 


On 17 December 2001 I reported a bug in the Visual C++ compiler.
The compiler silently generated incorrect code.  As you know,
that is, by far, the most serious mistake a compiler can make.

This bug involves the failure to restore the ECX register on exit
from a switch statement.

I received no reply.  I received no tracking number.  No service
pack beyond SP5 has appeared on your web site.

At the time I filed the report, I was unable to give a complete
test case, because it exceeded your size limit.
I gave information on contacting me (phone numbers, snailmail
address, email address) so that I could send the whole program
to you.  You have not contacted me.

You can see a summary of the details of the problem on my web site:
Up to
But, to reproduce this bug, you will most likely need the entire file.

More than a year has passed.  I wonder if you can tell me the status
of this bug?

The following reply was received the next day:
Subject: RE:{RTCProd#001-920-293}Extremely serious compiler bug in Visual C++ version 6.0, SP5
   Date: Fri, 7 Feb 2003 19:31:50 -0500 (Eastern Standard Time)
   From: "Customer Feedback for PSS Customers" 
     To: "William Ackerman" 

Thank you for contacting Microsoft.

I understand from your email that you have reported a possible bug in Visual C++ 6.0. When you report a possible bug to Microsoft, it goes to our development group. If they determine the issue to be a bug in the software, that information will be entered into our Knowledge Base along with any necessary resolution. They do not generally report back to the individual who reported the issue. If you would like to get a response regarding the issue, please submit a support request. You can do this online at or by calling 800-936-5800. Thank you, Matt H. Microsoft Online Customer Representative


In addition to the bug described below, Visual C++, version 5.0, service pack 3 has exhibited other inexcusable bugs, such as this:

compiler file E:\utc\src\\P2\main.c line 379
This was reported to Microsoft on 12 Aug 2002. No action was taken. Any decent and professional company or organization takes reports of internal compiler errors very seriously.


Microsoft Visual C++, professional edition, version 5.0 also exhibits the "snag bits and pieces" bug described below. This means that there are no Microsoft compilers that can correctly compile Sd. A temporary patch was put into the code to prevent it from affecting users. As of version 35, Sd is compiled with Gcc. No version of Gcc (including DJGPP), has ever been observed to generate incorrect code for Sd.

The website and telephone numbers given are for services for which Microsoft charges money. Needless to say, I did not follow up on this.
Up to Sd home page.
Time-stamp: "27 January 2003"