KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q65569: BC.EXE May Hang Using Single Quotation Marks in String CONST

Article: Q65569
Product(s): See article
Version(s): 3.00 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | buglist3.00 buglist4.00 buglist4.00b buglist4.50 | mspl13_basic
Last Modified: 21-SEP-1990

If you use an editor other than QB.EXE to write a program and BC.EXE
hangs at compile time, one possible cause is the use of single
quotation marks to delimit a string literal when declaring a string
CONST. Using single quotation marks to delimit a string constant
rather than double quotation marks is incorrect syntax and is flagged
by QB.EXE, but may cause the BC.EXE compiler to hang. In QuickBASIC
version 3.00, QB.EXE will also hang as a result of using single
quotation marks.

This problem occurs in Microsoft QuickBASIC versions 3.00, 4.00,
4.00b, and 4.50, and in Microsoft BASIC Compiler versions 6.00 and
6.00b (buglist6.00, buglist6.00b) for MS-DOS and OS/2. This problem
was corrected in Microsoft BASIC Professional Development System (PDS)
version 7.00 (fixlist7.00) for MS-DOS and OS/2.

When the following one-line program is written with an editor other
than QB.EXE and compiled using BC.EXE, the BC.EXE compiler will hang.
(In QuickBASIC 3.00, QB.EXE will hang):

   CONST A$ = 'Hello World'

The compiler may generate the error "R6000: internal stack overflow"
before it hangs, or it may go into an infinite loop, generating
"R6000: Internal stack overflow" errors.

To work around this problem, use the correct syntax, as follows:

   CONST A$ = "Hello World"

Note: The CONST statement was first introduced in QuickBASIC 3.00.

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.