Bug 36674 - #include location is offset by one row in errors from preprocessed files
Summary: #include location is offset by one row in errors from preprocessed files
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: preprocessor (show other bugs)
Version: 4.2.3
: P3 normal
Target Milestone: 4.5.0
Assignee: Not yet assigned to anyone
URL: http://gcc.gnu.org/ml/gcc-patches/200...
Keywords: diagnostic, patch
: 46814 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-06-29 21:45 UTC by Antal K
Modified: 2010-12-06 05:22 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail: 4.0.1, 4.4.0
Last reconfirmed: 2009-02-08 15:56:03


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Antal K 2008-06-29 21:45:04 UTC
Given
--- main.h ---
not_declared_yet();
--- main.c ---
#include "main.h"
--- Makefile ---

all:
	gcc --version
	gcc -Wall -E -I.  main.c > huhu.ii
	-gcc -Wall  -I.  huhu.ii
	gcc -Wall  -I.  main.c
----

make produces:
-------------------
make 
gcc --version
gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gcc -Wall -E -I.  main.c > huhu.ii
gcc -Wall  -I.  huhu.ii
In file included from main.c:2:
main.h:1: error: expected constructor, destructor, or type conversion before ‘;’ token
make: [all] Error 1 (ignored)
gcc -Wall  -I.  main.c
In file included from main.c:1:
main.h:1: warning: data definition has no type or storage class
main.h:1: warning: type defaults to ‘int’ in declaration of ‘not_declared_yet’
...(truncated)
-------------------

That is 'In file included from main.c:2:' instead of main.cc:1: when 
the file is preprocessed first.

---- huhu.ii contains ---
# 1 "main.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "main.c"
# 1 "main.h" 1
not_declared_yet();
# 1 "main.c" 2
-------------------------
Comment 1 Manuel López-Ibáñez 2009-02-08 15:56:03 UTC
Patch http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00875.html
Comment 2 Manuel López-Ibáñez 2009-05-13 23:18:15 UTC
Subject: Bug 36674

Author: manu
Date: Wed May 13 23:17:55 2009
New Revision: 147504

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147504
Log:
2009-05-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR cpp/36674
libcpp/
	* directives (do_linemarker): Compensate for the increment in
	location that occurs when we reach the end of line.
	* files (_cpp_stack_include): Mention _cpp_find_file in the
	comment.
testsuite/
	* gcc.dg/cpp/pr36674.i: New.

Added:
    trunk/gcc/testsuite/gcc.dg/cpp/pr36674.i
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/libcpp/ChangeLog
    trunk/libcpp/directives.c
    trunk/libcpp/files.c

Comment 3 Manuel López-Ibáñez 2009-05-13 23:19:54 UTC
FIXED in GCC 4.5
Comment 4 Andrew Pinski 2010-12-06 05:22:51 UTC
*** Bug 46814 has been marked as a duplicate of this bug. ***