diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2016-04-27 15:22:48 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2016-04-27 15:22:48 +0200 |
commit | ac566cbe4b11e71b0c9c3b595e1787fe06487310 (patch) | |
tree | 888a982c8d5a20b6f3cf5a35c09d9e6708edb2a6 /gcc/ada/init.c | |
parent | 6616e390695caad491386d19621b4014efaf394f (diff) | |
download | gcc-ac566cbe4b11e71b0c9c3b595e1787fe06487310.zip gcc-ac566cbe4b11e71b0c9c3b595e1787fe06487310.tar.gz gcc-ac566cbe4b11e71b0c9c3b595e1787fe06487310.tar.bz2 |
[multiple changes]
2016-04-27 Arnaud Charlet <charleT@adacore.com>
* sinput-l.ads, sem_ch13.adb: Minor editing.
2016-04-27 Doug Rupp <rupp@adacore.com>
* init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]:
Bump the pc so the lower order bit is set.
2016-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is
enabled, report an empty range in a case construct.
From-SVN: r235503
Diffstat (limited to 'gcc/ada/init.c')
-rw-r--r-- | gcc/ada/init.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/init.c b/gcc/ada/init.c index 43ea1e7..440a068 100644 --- a/gcc/ada/init.c +++ b/gcc/ada/init.c @@ -6,7 +6,7 @@ * * * C Implementation File * * * - * Copyright (C) 1992-2015, Free Software Foundation, Inc. * + * Copyright (C) 1992-2016, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -503,6 +503,11 @@ __gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED, void *ucontext) #elif defined (__ARMEL__) /* ARM Bump has to be an even number because of odd/even architecture. */ mcontext->arm_pc+=2; +#ifdef __thumb2__ + /* For thumb, the return address much have the low order bit set, otherwise + the unwwinder will reset to "arm" mode upon return. It's a feature. */ + mcontext->arm_pc+=1; +#endif #endif } |