aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2016-02-23 11:47:19 +0000
committerMark Wielaard <mark@gcc.gnu.org>2016-02-23 11:47:19 +0000
commit261e741f643fd6626cb9161e472628f300fd76ac (patch)
tree7bef3c40118e7118a920fbe40b6b0f6bfca1a63f /gcc
parent20c5e09e3f0d681a4f82acd01fd4c91816f7d21e (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/cgraphunit.c7
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)