KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q66784: Nesting for-loops Too Deep Gives C1026: Parser Stack OverFlow

Article: Q66784
Product(s): See article
Version(s): 5.10 6.00 6.00a | 5.10 6.00 6.00a
Operating System(s): MS-DOS | OS/2
Keyword(s): ENDUSER | buglist5.10 buglist6.00 buglist6.00a | mspl13_c
Last Modified: 10-NOV-1990

The Microsoft C Compiler versions 5.10, 6.00, and C 6.00a are limited
in the number of levels deep allowed for nested for-loops. Attempts to
nest for-loops too deep will result in the error "C1026: parser stack
overflow, please simplify your program."

There is no specific limit to the nesting level because the parser
stack capacity depends on the actual contents of the code, but the
overflow generally occurs with for-loop nesting about 10 to 15 levels
deep. This is an arbitrary limit and it will be increased in the
future to ensure compatibility with the 15 nesting-level minimum
specified in the ANSI specification.

Microsoft has confirmed this to be a problem in C versions 5.10, 6.00,
and 6.00a. We are researching this problem and will post new
information here as it becomes available.

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.