From 9f3f7d131fd4200ed84aa44ec75b3c675b8273ae Mon Sep 17 00:00:00 2001
From: Richard Guenther <rguenther@suse.de>
Date: Fri, 9 Oct 2009 13:22:22 +0000
Subject: [PATCH] cgraph.c (cgraph_create_edge): Check for NULL call_stmt
 before calling stmt_can_throw_external.

2009-10-09  Richard Guenther  <rguenther@suse.de>

	* cgraph.c (cgraph_create_edge): Check for NULL call_stmt
	before calling stmt_can_throw_external.

From-SVN: r152587
---
 gcc/ChangeLog | 5 +++++
 gcc/cgraph.c  | 9 +++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6f67e8586caa..ed31c56f95fe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-09  Richard Guenther  <rguenther@suse.de>
+
+	* cgraph.c (cgraph_create_edge): Check for NULL call_stmt
+	before calling stmt_can_throw_external.
+
 2009-10-09  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR tree-optimization/40071
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 01fbb9a85d79..167e8a8e7b40 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -822,9 +822,9 @@ cgraph_create_edge (struct cgraph_node *caller, struct cgraph_node *callee,
   if (call_stmt)
     {
 #ifdef ENABLE_CHECKING
-  /* This is rather pricely check possibly trigerring construction of call stmt
-     hashtable.  */
-  gcc_assert (!cgraph_edge (caller, call_stmt));
+      /* This is rather pricely check possibly trigerring construction of
+	 call stmt hashtable.  */
+      gcc_assert (!cgraph_edge (caller, call_stmt));
 #endif
 
       gcc_assert (is_gimple_call (call_stmt));
@@ -847,7 +847,8 @@ cgraph_create_edge (struct cgraph_node *caller, struct cgraph_node *callee,
   edge->callee = callee;
   edge->call_stmt = call_stmt;
   push_cfun (DECL_STRUCT_FUNCTION (caller->decl));
-  edge->can_throw_external = stmt_can_throw_external (call_stmt);
+  edge->can_throw_external
+    = call_stmt ? stmt_can_throw_external (call_stmt) : false;
   pop_cfun ();
   edge->prev_caller = NULL;
   edge->next_caller = callee->callers;
-- 
GitLab