aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDmitry Gorbachev <d.g.gorbachev@gmail.com>2009-09-07 15:41:52 +0000
committerRichard Henderson <rth@gcc.gnu.org>2009-09-07 08:41:52 -0700
commite5b258a4c95ee45aae8fb7ec9f7ba81dc68addc2 (patch)
tree045b7645befde640aa40983f537c1f9e98a2cdf8 /gcc
parent6c145259f5f92444bf315ab288fbbb58ec71be8a (diff)
downloadgcc-e5b258a4c95ee45aae8fb7ec9f7ba81dc68addc2.zip
gcc-e5b258a4c95ee45aae8fb7ec9f7ba81dc68addc2.tar.gz
gcc-e5b258a4c95ee45aae8fb7ec9f7ba81dc68addc2.tar.bz2
re PR c++/41214 (Null pointer dereferenced in _Unwind_SetGR())
PR c++/41214 * unwind-dw2.c (uw_init_context_1): Mark noinline. * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise. * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise. From-SVN: r151482
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/ia64/unwind-ia64.c2
-rw-r--r--gcc/config/xtensa/unwind-dw2-xtensa.c2
-rw-r--r--gcc/unwind-dw2.c2
4 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 20a5e68..7ad76cc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-09-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
+
+ PR c++/41214
+ * unwind-dw2.c (uw_init_context_1): Mark noinline.
+ * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise.
+ * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise.
+
2009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic
diff --git a/gcc/config/ia64/unwind-ia64.c b/gcc/config/ia64/unwind-ia64.c
index 3425858..f935a0c 100644
--- a/gcc/config/ia64/unwind-ia64.c
+++ b/gcc/config/ia64/unwind-ia64.c
@@ -2126,7 +2126,7 @@ uw_advance_context (struct _Unwind_Context *context, _Unwind_FrameState *fs)
uw_init_context_1 (CONTEXT, __builtin_ia64_bsp ()); \
} while (0)
-static void
+static void __attribute__((noinline))
uw_init_context_1 (struct _Unwind_Context *context, void *bsp)
{
void *rp = __builtin_extract_return_addr (__builtin_return_address (0));
diff --git a/gcc/config/xtensa/unwind-dw2-xtensa.c b/gcc/config/xtensa/unwind-dw2-xtensa.c
index e7ca86a..9544f65 100644
--- a/gcc/config/xtensa/unwind-dw2-xtensa.c
+++ b/gcc/config/xtensa/unwind-dw2-xtensa.c
@@ -459,7 +459,7 @@ uw_advance_context (struct _Unwind_Context *context, _Unwind_FrameState *fs)
} \
while (0)
-static void
+static void __attribute__((noinline))
uw_init_context_1 (struct _Unwind_Context *context, void *outer_cfa,
void *outer_ra)
{
diff --git a/gcc/unwind-dw2.c b/gcc/unwind-dw2.c
index 68a1a28..a86c21b 100644
--- a/gcc/unwind-dw2.c
+++ b/gcc/unwind-dw2.c
@@ -1431,7 +1431,7 @@ init_dwarf_reg_size_table (void)
__builtin_init_dwarf_reg_size_table (dwarf_reg_size_table);
}
-static void
+static void __attribute__((noinline))
uw_init_context_1 (struct _Unwind_Context *context,
void *outer_cfa, void *outer_ra)
{