diff options
author | Mark Wielaard <mjw@redhat.com> | 2016-02-23 11:47:19 +0000 |
---|---|---|
committer | Mark Wielaard <mark@gcc.gnu.org> | 2016-02-23 11:47:19 +0000 |
commit | 261e741f643fd6626cb9161e472628f300fd76ac (patch) | |
tree | 7bef3c40118e7118a920fbe40b6b0f6bfca1a63f /gcc | |
parent | 20c5e09e3f0d681a4f82acd01fd4c91816f7d21e (diff) | |
download | gcc-261e741f643fd6626cb9161e472628f300fd76ac.zip gcc-261e741f643fd6626cb9161e472628f300fd76ac.tar.gz gcc-261e741f643fd6626cb9161e472628f300fd76ac.tar.bz2 |
PR c/69911 Check main_input_filename and DECL_SOURCE_FILE are not NULL.
DECL_SOURCE_FILE can be NULL (for example when DECL_ARTIFICIAL).
So make sure to check before comparing against main_input_filename.
gcc/ChangeLog
PR c/69911
* cgraphunit.c (check_global_declaration): Check main_input_filename
and DECL_SOURCE_FILE are not NULL.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r233627
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e416c46..2c77b39 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-02-23 Mark Wielaard <mjw@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + PR c/69911 + * cgraphunit.c (check_global_declaration): Check main_input_filename + and DECL_SOURCE_FILE are not NULL. + 2016-02-23 Martin Jambor <mjambor@suse.cz> PR tree-optimization/69666 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)))) && TREE_CODE (decl) == VAR_DECL)) && ! DECL_IN_SYSTEM_HEADER (decl) && ! snode->referred_to_p (/*include_self=*/false) |