diff options
author | Jim Meyering <meyering@redhat.com> | 2012-04-24 12:07:30 +0000 |
---|---|---|
committer | Jim Meyering <meyering@gcc.gnu.org> | 2012-04-24 12:07:30 +0000 |
commit | 57f10fe5f4d2fc34f2d657ee39f753d1e8ff7818 (patch) | |
tree | b4b4a02af90bd84b599bbfc17712efa838f0e058 /gcc | |
parent | 7d5a99f479cb1b7237e64e2b3937e5285693911f (diff) | |
download | gcc-57f10fe5f4d2fc34f2d657ee39f753d1e8ff7818.zip gcc-57f10fe5f4d2fc34f2d657ee39f753d1e8ff7818.tar.gz gcc-57f10fe5f4d2fc34f2d657ee39f753d1e8ff7818.tar.bz2 |
genattrtab: avoid NULL-deref on error
* genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
absence of an define_enum call.
From-SVN: r186761
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/genattrtab.c | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f02bf71..fb6aea6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-02-24 Jim Meyering <meyering@redhat.com> + + * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing + absence of an define_enum call. + 2012-04-24 Richard Guenther <rguenther@suse.de> * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index 4a4c2a2..bfbe3e8 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -1,6 +1,6 @@ /* Generate code from machine description to compute values of attributes. Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -2993,8 +2993,9 @@ gen_attr (rtx exp, int lineno) if (!et || !et->md_p) error_with_line (lineno, "No define_enum called `%s' defined", attr->name); - for (ev = et->values; ev; ev = ev->next) - add_attr_value (attr, ev->name); + if (et) + for (ev = et->values; ev; ev = ev->next) + add_attr_value (attr, ev->name); } else if (*XSTR (exp, 1) == '\0') attr->is_numeric = 1; |