Microsoft KB Archive/39239

= &quot;Expression Too Complex&quot;, &quot;Stack Overflow&quot;, Adding Strings =

Article ID: 39239

Article Last Modified on 11/21/2006



This article was previously published under Q39239



SYMPTOMS
When the program below concatenates more than 19 string variables together in one equation, the BC.EXE compiler can give a misleading error message at compile time.



WORKAROUND
To work around this problem, split up the concatenation line so that the program does two concatenations on separate lines.



STATUS
Microsoft has confirmed this to be a bug in Microsoft QuickBasic versions 4.00, 4.00b, and 4.50 for MS-DOS; in Microsoft Basic Compiler versions 6.00 and 6.00b (buglist6.00, buglist6.00b) for MS-DOS and MS OS/2; and in Microsoft Basic Professional Development System (PDS) versions 7.00 and 7.10 (buglist7.00, buglist7.10) for MS-DOS and MS OS/2. We are researching this problem and will post new information here as it becomes available.



MORE INFORMATION
In QuickBasic versions 4.00 and 4.50 and Basic PDS 7.00, BC.EXE gives the following correct error message, but the message misleadingly points to the bottom of the next structure (IF..ENDIF, WHILE..WEND, or SELECT CASE) in the source file after the concatenation:

Expression Too Complex

BC.EXE should point to the concatenation instead of to the end of the structure.

In QuickBasic version 4.00b and Microsoft Basic Compiler versions 6.00 and 6.00b for MS-DOS and OS/2, BC.EXE displays the following error message in a continuous stream; you must press CTRL+C or CTRL+BREAK to stop the compiler:

run-time error R6000 - stack overflow

The following program will cause problems: REM The line continuation character (_) is for display purposes REM only and should be removed when typing in the program. WHILE a$ = &quot;&quot; b$ = INKEY$ a$ = b$ + c$ + d$ + e$ + f$ + g$ + h$ + i$ + j$ + k$ + l$ _ + m$ + n$ + o$ + p$ + q$ + r$ + s$ + t$ + u$  WEND The program can be changed as follows to correct the problem: WHILE a$ = &quot;&quot; b$ = INKEY$ a$ = b$ + c$ + d$ + e$ + f$ + g$ + h$ + i$ + j$ + k$ + l$  a$ = a$ + m$ + n$ + o$ + p$ + q$ + r$ + s$ + t$ + u$   WEND

Additional query words: QuickBas BasicCom buglist4.00 buglist4.00b buglist4.50

Keywords: KB39239

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.