OSDN Git Service

* final.c: (insn_lengths): Make it an int *, so that large jump
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Nov 2001 00:46:40 +0000 (00:46 +0000)
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Nov 2001 00:46:40 +0000 (00:46 +0000)
tables don't overflow.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47331 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/final.c

index 231c5b5..a3af9cc 100644 (file)
@@ -1,3 +1,8 @@
+2001-11-26  Alan Modra  <amodra@bigpond.net.au>
+
+       * final.c: (insn_lengths): Make it an int *, so that large jump
+       tables don't overflow.
+
 2001-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
 
        * c-format.c (FMT_FLAG_DOLLAR_GAP_POINTER_OK): New.
index 761bd71..c7ad5e6 100644 (file)
@@ -603,7 +603,7 @@ dbr_sequence_length ()
 /* Arrays for insn lengths, and addresses.  The latter is referenced by
    `insn_current_length'.  */
 
-static short *insn_lengths;
+static int *insn_lengths;
 
 #ifdef HAVE_ATTR_length
 varray_type insn_addresses_;
@@ -1186,7 +1186,7 @@ shorten_branches (first)
 #ifdef HAVE_ATTR_length
 
   /* Allocate the rest of the arrays.  */
-  insn_lengths = (short *) xmalloc (max_uid * sizeof (short));
+  insn_lengths = (int *) xmalloc (max_uid * sizeof (*insn_lengths));
   insn_lengths_max_uid = max_uid;
   /* Syntax errors can lead to labels being outside of the main insn stream.
      Initialize insn_addresses, so that we get reproducible results.  */