On Tue, 2016-02-23 at 09:51 +0000, Manuel López-Ibáñez wrote:
> On 23/02/16 08:56, Jakub Jelinek wrote:
> > On Tue, Feb 23, 2016@09:53:57AM +0100, Mark Wielaard wrote:
> >> --- a/gcc/ChangeLog
> >> +++ b/gcc/ChangeLog
> >> @@ -1,3 +1,10 @@
> >> +2016-02-23  Mark Wielaard  <m...@redhat.com>
> >> +      Jakub Jelinek  <ja...@redhat.com>
> >> +
> >> +  PR c/69911
> >> +  * cgraphunit.c (check_global_declaration): Check main_input_filename
> >> +  and DECL_SOURCE_FILE are not NULL.
> >> +
> >>   2016-02-20  Mark Wielaard  <m...@redhat.com>
> >
> > This is ok for trunk if it passes testing.  Thanks.
> >
> >> diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
> >> index 27a073a..8b3fddc 100644
> >> --- a/gcc/cgraphunit.c
> >> +++ b/gcc/cgraphunit.c
> >> @@ -917,6 +917,7 @@ walk_polymorphic_call_targets (hash_set<void *> 
> >> *reachable_call_targets,
> >>   static void
> >>   check_global_declaration (symtab_node *snode)
> >>   {
> >> +  const char *decl_file;
> >>     tree decl = snode->decl;
> >>
> >>     /* Warn about any function declared static but not defined.  We don't
> >> @@ -944,8 +945,10 @@ check_global_declaration (symtab_node *snode)
> >>          || (((warn_unused_variable && ! TREE_READONLY (decl))
> >>        || (warn_unused_const_variable > 0 && TREE_READONLY (decl)
> >>            && (warn_unused_const_variable == 2
> >> -              || filename_cmp (main_input_filename,
> >> -                               DECL_SOURCE_FILE (decl)) == 0)))
> >> +              || (main_input_filename != NULL
> >> +                  && (decl_file = DECL_SOURCE_FILE (decl)) != NULL
> >> +                  && filename_cmp (main_input_filename,
> >> +                                   decl_file) == 0))))
> 
> 
> Can we please please please hide this ugliness behind an (inline?) function 
> such as bool in_main_file_at (location_t) in input.[ch]? The condition here 
> is 
> quickly becoming unreadable.
> 
> Also because in the future somebody would want to re-implement this using 
> MAIN_FILE_P() from line-map.h, which is faster.

Sorry, I pushed the minimum fix. I am too embarrassed already for
breaking stuff to risk refactoring anything and making another dumb
mistake. (My mistake was only checking the top-level compiler .sum
files, I had forgotten to check the library ones).

It might be a good idea to file a bug for this and write a patch to
submit during next stage one if you believe this is a useful cleanup.

Cheers,

Mark

Reply via email to