ID Number: Q61308
5.10 6.00 6.00a 6.00ax | 5.10 6.00 6.00a
MS-DOS | OS/2
buglist5.10 buglist6.00 buglist6.00a buglist6.00ax
Summary:
SYMPTOMS
When the #line preprocessor directive is used with a filename
label, /Fs generates a source listing with the correct error
count but fails to correctly locate the errors in the listing file.
STATUS
Microsoft has confirmed this to be a problem in C versions 5.1,
6.0, 6.0a, and 6.0ax. We are researching this problem and will post
new information here as it becomes available.
More Information:
The sample code below was used to generate the following listing
files, which illustrate this problem.
This is the normal source listing generated by the compiler:
Line# Source Line Microsoft C Compiler Version 6.00
1
2 #include <stdio.h>
3
4 void main()
5 {
6 intt x; /* the error is here */
***** test.c(6) : error C2065: 'intt' : undefined
***** test.c(6) : error C2146: syntax error : missing ';' before ...
***** test.c(6) : error C2065: 'x' : undefined
7
8 printf("hello");
9 }
3 errors detected
When compiled with a #line directive and a filename label, the source
listing fails to indicate the error, and lists only the number of
errors. For example:
Line# Source Line Microsoft C Compiler Version 6.00
1 #include <stdio.h>
2
3 #line 1 "test"
4
5 void main()
6 {
7
8 intt x; /* error is here */
9
10 printf("hello");
11 }
3 errors detected
If the filename label ("test" in this case) is not specified, the
source listing contains the error messages, but they are not in the
correct place. For example:
Line# Source Line Microsoft C Compiler Version 6.00
1
2 #include <stdio.h>
3 #line 1
4
***** test.c(4) : error C2065: 'intt' : undefined
***** test.c(4) : error C2146: syntax error : missing ';' before ...
***** test.c(4) : error C2065: 'x' : undefined
5 void main()
6 {
7 intt x; /* the error is here */
8
9 printf("hello");
10 }
3 errors detected
Sample Code
-----------
/* Compile options needed: /Fs
*/
#include <stdio.h>
void main()
{
intt x; /* the error is here */
printf("hello");
}
Additional reference words: 5.10 6.00 6.00a 6.00ax