Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

>From ea6f08c8ce3de4d517d37faed5e2c9e4bf48f8bb Mon Sep 17 00:00:00 2001
From: Richard Guenther <rguent...@suse.de>
Date: Thu, 14 Jun 2018 10:20:06 +0200
Subject: [PATCH] fix-pr86124

2018-06-14  Richard Biener  <rguent...@suse.de>

        PR ipa/86124
        * tree-ssa-struct-alias.c (create_variable_info_for): Handle
        NULL cgraph_node.

        * gcc.dg/pr86124.c: New testcase.

diff --git a/gcc/testsuite/gcc.dg/pr86124.c b/gcc/testsuite/gcc.dg/pr86124.c
new file mode 100644
index 00000000000..218b48295f7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr86124.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fipa-pta" } */
+
+extern void a (void);
+
+void b (void)
+{
+  void *c;
+  c = a;
+  *(char *)c = 1;
+}
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 73e500bb616..ac5d4bc93fe 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -6120,7 +6120,8 @@ create_variable_info_for (tree decl, const char *name, 
bool add_id)
   cgraph_node *node;
   if (in_ipa_mode
       && TREE_CODE (decl) == FUNCTION_DECL
-      && (node = cgraph_node::get (decl))->ifunc_resolver)
+      && (node = cgraph_node::get (decl))
+      && node->ifunc_resolver)
     {
       varinfo_t fi = get_vi_for_tree (node->get_alias_target ()->decl);
       constraint_expr rhs

Reply via email to