aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>2011-07-22 08:58:25 +0000
committerRainer Orth <ro@gcc.gnu.org>2011-07-22 08:58:25 +0000
commit5b6d595bd778d9737f12c79118ce5cc9410f421b (patch)
treee86bdc7a288c779fda5bb7d285129adcd52003f3 /gcc/ada
parent94017021b1c6372bd66c6aad2044a2a3d41f81f5 (diff)
downloadgcc-5b6d595bd778d9737f12c79118ce5cc9410f421b.zip
gcc-5b6d595bd778d9737f12c79118ce5cc9410f421b.tar.gz
gcc-5b6d595bd778d9737f12c79118ce5cc9410f421b.tar.bz2
re PR bootstrap/49794 (Solaris 10/x86 bootstrap broken by C++ build)
2011-07-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> Ralf Wildenhues <Ralf.Wildenhues@gmx.de> gcc: PR bootstrap/49794 * configure.ac: Test AM_ICONV with CXX. * configure: Regenerate. * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST. gcc/ada: PR bootstrap/49794 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler): Assign to act.sa_sigaction. * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast current->return_address to char * before arithmetic. libcpp: PR bootstrap/49794 * configure.ac: Test AM_ICONV with CXX. * configure: Regenerate. * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++. Co-Authored-By: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> From-SVN: r176620
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog8
-rw-r--r--gcc/ada/init.c2
-rw-r--r--gcc/ada/tracebak.c4
3 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 27f4169..8ba499b 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,13 @@
2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+ PR bootstrap/49794
+ * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
+ Assign to act.sa_sigaction.
+ * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
+ current->return_address to char * before arithmetic.
+
+2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
* init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
Correct argument types.
Extract code from reason.
diff --git a/gcc/ada/init.c b/gcc/ada/init.c
index 2dc4aa5..b46cafd 100644
--- a/gcc/ada/init.c
+++ b/gcc/ada/init.c
@@ -1046,7 +1046,7 @@ __gnat_install_handler (void)
exceptions. Make sure that the handler isn't interrupted by another
signal that might cause a scheduling event! */
- act.sa_handler = __gnat_error_handler;
+ act.sa_sigaction = __gnat_error_handler;
act.sa_flags = SA_NODEFER | SA_RESTART | SA_SIGINFO;
sigemptyset (&act.sa_mask);
diff --git a/gcc/ada/tracebak.c b/gcc/ada/tracebak.c
index 6764cd4..23fc5c7 100644
--- a/gcc/ada/tracebak.c
+++ b/gcc/ada/tracebak.c
@@ -482,12 +482,12 @@ __gnat_backtrace (void **array,
while (cnt < size)
{
if (STOP_FRAME (current, top_stack) ||
- !VALID_STACK_FRAME((char *)(current->return_address + PC_ADJUST)))
+ !VALID_STACK_FRAME(((char *) current->return_address) + PC_ADJUST))
break;
if (current->return_address < exclude_min
|| current->return_address > exclude_max)
- array[cnt++] = current->return_address + PC_ADJUST;
+ array[cnt++] = ((char *) current->return_address) + PC_ADJUST;
current = (struct layout *) ((size_t) current->next + FRAME_OFFSET (1));
}