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 <bschm...@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