From 540ebd9bace169ecee2960c56dfdb27b038755dd Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Tue, 18 Mar 2014 21:08:03 +0100 Subject: [PATCH] re PR rtl-optimization/56356 (DJGPP compiler crashing) PR rtl-optimization/56356 * sdbout.c (sdbout_parms): Verify that parms' incoming argument is valid. (sdbout_reg_parms): Likewise. From-SVN: r208665 --- gcc/ChangeLog | 7 +++++++ gcc/sdbout.c | 10 ++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f6867dcc11b2..78b39c74d111 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-03-18 Kai Tietz + + PR rtl-optimization/56356 + * sdbout.c (sdbout_parms): Verify that parms' + incoming argument is valid. + (sdbout_reg_parms): Likewise. + 2014-03-18 Richard Biener Backport from mainline diff --git a/gcc/sdbout.c b/gcc/sdbout.c index 255c68e7b048..4d42da9221ee 100644 --- a/gcc/sdbout.c +++ b/gcc/sdbout.c @@ -1264,7 +1264,10 @@ static void sdbout_parms (tree parms) { for (; parms; parms = TREE_CHAIN (parms)) - if (DECL_NAME (parms)) + if (DECL_NAME (parms) + && TREE_TYPE (parms) != error_mark_node + && DECL_RTL_SET_P (parms) + && DECL_INCOMING_RTL (parms)) { int current_sym_value = 0; const char *name = IDENTIFIER_POINTER (DECL_NAME (parms)); @@ -1396,7 +1399,10 @@ static void sdbout_reg_parms (tree parms) { for (; parms; parms = TREE_CHAIN (parms)) - if (DECL_NAME (parms)) + if (DECL_NAME (parms) + && TREE_TYPE (parms) != error_mark_node + && DECL_RTL_SET_P (parms) + && DECL_INCOMING_RTL (parms)) { const char *name = IDENTIFIER_POINTER (DECL_NAME (parms)); -- 2.47.2