diff options
author | Jeffrey A Law <law@cygnus.com> | 2000-07-07 13:48:38 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2000-07-07 07:48:38 -0600 |
commit | a12cf6504261855228d6e8862344edb5ada5cff6 (patch) | |
tree | b1bdc06a5eae8438f378956855ec53b3144a0e20 /gcc | |
parent | 3abaac67a1d89738843ef44495d057228f485ad9 (diff) | |
download | gcc-a12cf6504261855228d6e8862344edb5ada5cff6.zip gcc-a12cf6504261855228d6e8862344edb5ada5cff6.tar.gz gcc-a12cf6504261855228d6e8862344edb5ada5cff6.tar.bz2 |
final.c (final): Detect out of bounds array access to the insn_lengths array.
* final.c (final): Detect out of bounds array access to
the insn_lengths array.
From-SVN: r34901
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/final.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5b94eb0..71e9933 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com) + + * final.c (final): Detect out of bounds array access to + the insn_lengths array. + 2000-07-07 Kazu Hirata <kazu@hxi.com> * fold-const.c (fold): Fix a comment typo. diff --git a/gcc/final.c b/gcc/final.c index 35782db..3537bcf 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -2014,6 +2014,12 @@ final (first, file, optimize, prescan) for (insn = NEXT_INSN (first); insn;) { #ifdef HAVE_ATTR_length +#ifdef ENABLE_CHECKING + /* This can be triggered by bugs elsewhere in the compiler if + new insns are created after init_insn_lengths is called. */ + if (INSN_UID (insn) >= insn_lengths_max_uid) + abort (); +#endif insn_current_address = insn_addresses[INSN_UID (insn)]; #endif insn = final_scan_insn (insn, file, optimize, prescan, 0); |