aboutsummaryrefslogtreecommitdiff
path: root/gcc/sdbout.c
diff options
context:
space:
mode:
authorKai Tietz <ktietz@redhat.com>2014-03-18 21:02:54 +0100
committerKai Tietz <ktietz@gcc.gnu.org>2014-03-18 21:02:54 +0100
commit234f76cb20ceb0a1f08b96aba50b3f1c50715b7f (patch)
treed81a814a0eaf33a5aa51e613eda80e34749ca92d /gcc/sdbout.c
parent58ca6edfe58eed4b038c6fd8973c1052898e78e5 (diff)
downloadgcc-234f76cb20ceb0a1f08b96aba50b3f1c50715b7f.zip
gcc-234f76cb20ceb0a1f08b96aba50b3f1c50715b7f.tar.gz
gcc-234f76cb20ceb0a1f08b96aba50b3f1c50715b7f.tar.bz2
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: r208663
Diffstat (limited to 'gcc/sdbout.c')
-rw-r--r--gcc/sdbout.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/sdbout.c b/gcc/sdbout.c
index 2e781c9..b07824b 100644
--- a/gcc/sdbout.c
+++ b/gcc/sdbout.c
@@ -1229,7 +1229,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));
@@ -1361,7 +1364,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));