aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Ivchenko <alexander.ivchenko@intel.com>2014-05-22 20:16:00 +0400
committerAlexander Ivchenko <alexander.ivchenko@intel.com>2014-05-22 20:17:53 +0400
commit41a51304ab0f3b4580f34718ee4781c3629fb548 (patch)
tree345be61ce8cc8e8323d5ddaca307810bc6f777e0
parent8c493ead6366b552adee796de296936b78f34c5a (diff)
downloadtoolchain_gcc-41a51304ab0f3b4580f34718ee4781c3629fb548.tar.gz
toolchain_gcc-41a51304ab0f3b4580f34718ee4781c3629fb548.tar.bz2
toolchain_gcc-41a51304ab0f3b4580f34718ee4781c3629fb548.zip
[4.6] Fix build of 4.6 compiler using newer 4.8. Backport of two patches
from 4.6.4 release: 2012-09-21 Richard Guenther <rguenther@suse.de> PR middle-end/54638 Backport from mainline 2012-04-19 Richard Guenther <rguenther@suse.de> * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound array access. 2012-04-20 Thomas Schwinge <thomas@codesourcery.com> * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use siginfo_t instead of struct siginfo. * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise. * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise. * config/ia64/linux-unwind.h (ia64_fallback_frame_state) (ia64_handle_unwabi): Likewise. * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise. * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise. * config/sh/linux-unwind.h (shmedia_fallback_frame_state) (sh_fallback_frame_state): Likewise. * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise. Change-Id: If84780aad73abf47ba08bef806ac0b728c4e1c02 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
-rw-r--r--gcc-4.6/gcc/config/alpha/linux-unwind.h4
-rw-r--r--gcc-4.6/gcc/config/bfin/linux-unwind.h6
-rw-r--r--gcc-4.6/gcc/config/i386/linux-unwind.h7
-rw-r--r--gcc-4.6/gcc/config/ia64/linux-unwind.h6
-rw-r--r--gcc-4.6/gcc/config/mips/linux-unwind.h5
-rw-r--r--gcc-4.6/gcc/config/pa/linux-unwind.h4
-rw-r--r--gcc-4.6/gcc/config/sh/linux-unwind.h9
-rw-r--r--gcc-4.6/gcc/config/xtensa/linux-unwind.h4
-rw-r--r--gcc-4.6/gcc/ira-int.h9
9 files changed, 31 insertions, 23 deletions
diff --git a/gcc-4.6/gcc/config/alpha/linux-unwind.h b/gcc-4.6/gcc/config/alpha/linux-unwind.h
index 4c811dca4..8c04b3b41 100644
--- a/gcc-4.6/gcc/config/alpha/linux-unwind.h
+++ b/gcc-4.6/gcc/config/alpha/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Alpha Linux.
- Copyright (C) 2004, 2005, 2009, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
{
struct rt_sigframe {
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_ = context->cfa;
sc = &rt_->uc.uc_mcontext;
diff --git a/gcc-4.6/gcc/config/bfin/linux-unwind.h b/gcc-4.6/gcc/config/bfin/linux-unwind.h
index 88c828563..15bb2f12b 100644
--- a/gcc-4.6/gcc/config/bfin/linux-unwind.h
+++ b/gcc-4.6/gcc/config/bfin/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Blackfin.
- Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
{
struct rt_sigframe {
int sig;
- struct siginfo *pinfo;
+ siginfo_t *pinfo;
void *puc;
char retcode[8];
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_ = context->cfa;
diff --git a/gcc-4.6/gcc/config/i386/linux-unwind.h b/gcc-4.6/gcc/config/i386/linux-unwind.h
index c5f7ea0e8..9e4be8010 100644
--- a/gcc-4.6/gcc/config/i386/linux-unwind.h
+++ b/gcc-4.6/gcc/config/i386/linux-unwind.h
@@ -1,5 +1,6 @@
/* DWARF2 EH unwinding support for AMD x86-64 and x86.
- Copyright (C) 2004, 2005, 2006, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2006, 2009, 2010, 2012 Free Software Foundation,
+ Inc.
This file is part of GCC.
@@ -133,9 +134,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
{
struct rt_sigframe {
int sig;
- struct siginfo *pinfo;
+ siginfo_t *pinfo;
void *puc;
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
diff --git a/gcc-4.6/gcc/config/ia64/linux-unwind.h b/gcc-4.6/gcc/config/ia64/linux-unwind.h
index 93f762de5..da3125978 100644
--- a/gcc-4.6/gcc/config/ia64/linux-unwind.h
+++ b/gcc-4.6/gcc/config/ia64/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for IA64 Linux.
- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
struct sigframe {
char scratch[16];
unsigned long sig_number;
- struct siginfo *info;
+ siginfo_t *info;
struct sigcontext *sc;
} *frame_ = (struct sigframe *)context->psp;
struct sigcontext *sc = frame_->sc;
@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
struct sigframe {
char scratch[16];
unsigned long sig_number;
- struct siginfo *info;
+ siginfo_t *info;
struct sigcontext *sc;
} *frame = (struct sigframe *)context->psp;
struct sigcontext *sc = frame->sc;
diff --git a/gcc-4.6/gcc/config/mips/linux-unwind.h b/gcc-4.6/gcc/config/mips/linux-unwind.h
index 02f7cd54c..094ff58cb 100644
--- a/gcc-4.6/gcc/config/mips/linux-unwind.h
+++ b/gcc-4.6/gcc/config/mips/linux-unwind.h
@@ -1,5 +1,6 @@
/* DWARF2 EH unwinding support for MIPS Linux.
- Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2012 Free Software
+ Foundation, Inc.
This file is part of GCC.
@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
struct rt_sigframe {
u_int32_t ass[4]; /* Argument save space for o32. */
u_int32_t trampoline[2];
- struct siginfo info;
+ siginfo_t info;
_sig_ucontext_t uc;
} *rt_ = context->cfa;
sc = &rt_->uc.uc_mcontext;
diff --git a/gcc-4.6/gcc/config/pa/linux-unwind.h b/gcc-4.6/gcc/config/pa/linux-unwind.h
index a0560e974..38b4eda7a 100644
--- a/gcc-4.6/gcc/config/pa/linux-unwind.h
+++ b/gcc-4.6/gcc/config/pa/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for PA Linux.
- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
int i;
struct sigcontext *sc;
struct rt_sigframe {
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *frame;
diff --git a/gcc-4.6/gcc/config/sh/linux-unwind.h b/gcc-4.6/gcc/config/sh/linux-unwind.h
index 94ed95d55..5a78e3172 100644
--- a/gcc-4.6/gcc/config/sh/linux-unwind.h
+++ b/gcc-4.6/gcc/config/sh/linux-unwind.h
@@ -1,5 +1,6 @@
/* DWARF2 EH unwinding support for SH Linux.
- Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2006, 2007, 2009, 2012 Free Software Foundation,
+ Inc.
This file is part of GCC.
@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
&& (*(unsigned long *) (pc+11) == 0x6ff0fff0))
{
struct rt_sigframe {
- struct siginfo *pinfo;
+ siginfo_t *pinfo;
void *puc;
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
@@ -179,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
&& (*(unsigned short *) (pc+14) == 0x00ad))))
{
struct rt_sigframe {
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
diff --git a/gcc-4.6/gcc/config/xtensa/linux-unwind.h b/gcc-4.6/gcc/config/xtensa/linux-unwind.h
index 32e934972..245649728 100644
--- a/gcc-4.6/gcc/config/xtensa/linux-unwind.h
+++ b/gcc-4.6/gcc/config/xtensa/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Xtensa.
- Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
struct sigcontext *sc;
struct rt_sigframe {
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_;
diff --git a/gcc-4.6/gcc/ira-int.h b/gcc-4.6/gcc/ira-int.h
index 049a07f89..a58f0ca0c 100644
--- a/gcc-4.6/gcc/ira-int.h
+++ b/gcc-4.6/gcc/ira-int.h
@@ -1123,8 +1123,13 @@ static inline bool
ira_allocno_object_iter_cond (ira_allocno_object_iterator *i, ira_allocno_t a,
ira_object_t *o)
{
- *o = ALLOCNO_OBJECT (a, i->n);
- return i->n++ < ALLOCNO_NUM_OBJECTS (a);
+ int n = i->n++;
+ if (n < ALLOCNO_NUM_OBJECTS (a))
+ {
+ *o = ALLOCNO_OBJECT (a, n);
+ return true;
+ }
+ return false;
}
/* Loop over all objects associated with allocno A. In each