Article ID: 120668
Article Last Modified on 7/5/2005
APPLIES TO
- Microsoft Visual C++ 1.0 Professional Edition
- Microsoft Visual C++ 1.5 Professional Edition
- Microsoft Visual C++ 1.0 Professional Edition
- Microsoft Visual C++ 2.0 Professional Edition
- Microsoft Visual C++ 4.1 Subscription
- Microsoft Visual C++ 4.2 Professional Edition
- Microsoft Visual C++ 5.0 Standard Edition
- Microsoft Visual C++ 6.0 Service Pack 5
- Microsoft Visual C++ .NET 2002 Standard Edition
- Microsoft Visual C++ .NET 2003 Standard Edition
This article was previously published under Q120668
SYMPTOMS
Trigraphs are three-character sequences used to represent punctuation unavailable in a character set. When the compiler encounters Trigraph statements that use ifdef and endif statements, it gives the following erroneous end-of-file error:
CAUSE
Trigraph translation is not finished before processing, so the #endif (the equivalent of ??=endif) is not reached.
STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
NOTE: This problem did not occur in Microsoft Visual C++, 32-bit Edition, version 4.0.
MORE INFORMATION
The following is sample code to reproduce the problem:
/* Compile options needed: none */ ??=ifdef TESTING int i=0; ??=endif
Additional query words: 1.00 1.50 2.00 8.00 8.00c 9.00 5.00
Keywords: kbbug kbcompiler KB120668