This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RE: [PATCH 08/22] Add Intel CET support for EH in libgcc.
I propose the following changes. I do not have ia64 to test. Ok for trunk?
bash-4.2$ svn diff
Index: libgcc/config/cr16/unwind-cr16.c
===================================================================
--- libgcc/config/cr16/unwind-cr16.c (revision 254908)
+++ libgcc/config/cr16/unwind-cr16.c (working copy)
@@ -1567,7 +1567,7 @@
our caller. */
#if defined( __CR16C__ )
-#define uw_install_context(CURRENT, TARGET) \
+#define uw_install_context(CURRENT, TARGET, FRAMES) \
do \
{ \
long offset = uw_install_context_1 ((CURRENT), (TARGET)); \
@@ -1578,7 +1578,7 @@
} \
while (0)
#else
-#define uw_install_context(CURRENT, TARGET) \
+#define uw_install_context(CURRENT, TARGET, FRAMES) \
do \
{ \
long offset = uw_install_context_1 ((CURRENT), (TARGET)); \
Index: libgcc/config/ia64/unwind-ia64.c
===================================================================
--- libgcc/config/ia64/unwind-ia64.c (revision 254908)
+++ libgcc/config/ia64/unwind-ia64.c (working copy)
@@ -2165,7 +2165,8 @@
static void __attribute__((noreturn))
uw_install_context (struct _Unwind_Context *current __attribute__((unused)),
- struct _Unwind_Context *target)
+ struct _Unwind_Context *target,
+ unsigned long frames __attribute__((unused)))
{
unw_word ireg_buf[4], ireg_nat = 0, ireg_pr = 0;
unw_word saved_lc;
Index: libgcc/config/xtensa/unwind-dw2-xtensa.c
===================================================================
--- libgcc/config/xtensa/unwind-dw2-xtensa.c (revision 254908)
+++ libgcc/config/xtensa/unwind-dw2-xtensa.c (working copy)
@@ -483,7 +483,7 @@
macro because __builtin_eh_return must be invoked in the context of
our caller. */
-#define uw_install_context(CURRENT, TARGET) \
+#define uw_install_context(CURRENT, TARGET, FRAMES) \
do \
{ \
long offset = uw_install_context_1 ((CURRENT), (TARGET)); \
Index: libgcc/unwind-sjlj.c
===================================================================
--- libgcc/unwind-sjlj.c (revision 254908)
+++ libgcc/unwind-sjlj.c (working copy)
@@ -300,7 +300,8 @@
static void __attribute__((noreturn))
uw_install_context (struct _Unwind_Context *current __attribute__((unused)),
- struct _Unwind_Context *target)
+ struct _Unwind_Context *target,
+ unsigned long frames __attribute__((unused)))
{
_Unwind_SjLj_SetContext (target->fc);
longjmp (target->fc->jbuf, 1);
Igor
> -----Original Message-----
> From: Andreas Schwab [mailto:schwab@linux-m68k.org]
> Sent: Saturday, November 18, 2017 2:51 PM
> To: Tsimbalist, Igor V <igor.v.tsimbalist@intel.com>
> Cc: Jeff Law <law@redhat.com>; gcc-patches@gcc.gnu.org; ian@airs.com
> Subject: Re: [PATCH 08/22] Add Intel CET support for EH in libgcc.
>
> In file included from ../../../libgcc/config/ia64/unwind-ia64.c:2448:
> ../../../libgcc/unwind.inc: In function '_Unwind_RaiseException':
> ../../../libgcc/unwind.inc:140:3: error: too many arguments to function
> 'uw_install_context'
> uw_install_context (&this_context, &cur_context, frames);
> ^~~~~~~~~~~~~~~~~~
> ../../../libgcc/config/ia64/unwind-ia64.c:2167:1: note: declared here
> uw_install_context (struct _Unwind_Context *current
> __attribute__((unused)),
> ^~~~~~~~~~~~~~~~~~
>
> Andreas.
>
> --
> Andreas Schwab, schwab@linux-m68k.org
> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
> "And now for something completely different."