This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix 69650, bogus line numbers from libcpp


On 03/24/2016 09:20 AM, Bernd Schmidt wrote:


On 03/23/2016 03:21 PM, Richard Biener wrote:
On Wed, Mar 23, 2016 at 2:15 PM, Bernd Schmidt <bschmidt@redhat.com>
wrote:
On 03/23/2016 01:41 PM, Richard Biener wrote:

Btw, the issue in the PR is also fixed with a simple

Index: libcpp/line-map.c
===================================================================
--- libcpp/line-map.c   (revision 234415)
+++ libcpp/line-map.c   (working copy)
@@ -543,7 +543,7 @@ linemap_add (struct line_maps *set, enum
                   to_file);

         /* A TO_FILE of NULL is special - we use the natural
values.  */
-      if (error || to_file == NULL)
+      if (to_file == NULL)
          {
            to_file = ORDINARY_MAP_FILE_NAME (from);
            to_line = SOURCE_LINE (from, from[1].start_location);


I looked at that, but that made it hard to add the testcase as the line
numbers no longer match the dg-error directives. By moving this code
we can
ignore the erroneous #line directive, and for this one testcase at
least,
that makes the line numbers (and caret diagnostics etc.) come out right.

After some more digging and looking at your patch I'd approve that if
it would
emit a warning rather than an error - so can you please adjust it?

Like this? No one has yet approved any better wording for the message,
so given that you said "it's not a regression" I've left it, but I would
now prefer "linemarker ignored due to incorrect nesting".


Bernd

cpp-leave.diff


	PR lto/69650
	* directives.c (do_linemarker): Test for file left but not entered
	here.
	* line-map.c (linemap_add): Not here.

	PR lto/69650
	* gcc.dg/pr69650.c: New test.
OK.

Also OK if you want to fixup the message.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]