Mercurial > hg > CbC > CbC_gcc
diff gcc/unwind-dw2.c @ 63:b7f97abdc517 gcc-4.6-20100522
update gcc from gcc-4.5.0 to gcc-4.6
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 24 May 2010 12:47:05 +0900 |
parents | 77e2b8dfacca |
children |
line wrap: on
line diff
--- a/gcc/unwind-dw2.c Fri Feb 12 23:41:23 2010 +0900 +++ b/gcc/unwind-dw2.c Mon May 24 12:47:05 2010 +0900 @@ -1,6 +1,6 @@ /* DWARF2 exception handling and frame unwind runtime interface routines. Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2008, 2009 Free Software Foundation, Inc. + 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -356,7 +356,16 @@ aug += 2; } - /* Immediately following the augmentation are the code and + /* After the augmentation resp. pointer for "eh" augmentation + follows for CIE version >= 4 address size byte and + segment size byte. */ + if (__builtin_expect (cie->version >= 4, 0)) + { + if (p[0] != sizeof (void *) || p[1] != 0) + return NULL; + p += 2; + } + /* Immediately following this are the code and data alignment and return address column. */ p = read_uleb128 (p, &utmp); fs->code_align = (_Unwind_Word)utmp; @@ -765,7 +774,7 @@ result = second - first; break; case DW_OP_mod: - result = (_Unwind_Sword) second % (_Unwind_Sword) first; + result = second % first; break; case DW_OP_mul: result = second * first; @@ -1473,7 +1482,8 @@ context->ra = __builtin_extract_return_addr (outer_ra); } -static void _Unwind_DebugHook (void *, void *) __attribute__ ((__noinline__)); +static void _Unwind_DebugHook (void *, void *) + __attribute__ ((__noinline__, __used__, __noclone__)); /* This function is called during unwinding. It is intended as a hook for a debugger to intercept exceptions. CFA is the CFA of the