aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2012-03-13 17:07:50 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2012-03-13 10:07:50 -0700
commitf155bc649660e4ca1dce2f1237fecef68e662e3b (patch)
tree32cdf864570823902c4c333d0cc26c7802ea8a07
parentff71e554beee40f627444101b9567b1868c24650 (diff)
downloadgcc-f155bc649660e4ca1dce2f1237fecef68e662e3b.zip
gcc-f155bc649660e4ca1dce2f1237fecef68e662e3b.tar.gz
gcc-f155bc649660e4ca1dce2f1237fecef68e662e3b.tar.bz2
Assert DWARF register size <= saved reg size
2012-03-13 H.J. Lu <hongjiu.lu@intel.com> * unwind-dw2.c (_Unwind_SetGRValue): Assert DWARF register size <= saved reg size. From-SVN: r185346
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/unwind-dw2.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index ad7cc26..bcefebb 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * unwind-dw2.c (_Unwind_SetGRValue): Assert DWARF register size
+ <= saved reg size.
+
2012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/arm/crtn.S: Fix typo.
diff --git a/libgcc/unwind-dw2.c b/libgcc/unwind-dw2.c
index 475ad00..d1c62ee 100644
--- a/libgcc/unwind-dw2.c
+++ b/libgcc/unwind-dw2.c
@@ -294,7 +294,8 @@ _Unwind_SetGRValue (struct _Unwind_Context *context, int index,
{
index = DWARF_REG_TO_UNWIND_COLUMN (index);
gcc_assert (index < (int) sizeof(dwarf_reg_size_table));
- gcc_assert (dwarf_reg_size_table[index] == sizeof (_Unwind_Context_Reg_Val));
+ /* Return column size may be smaller than _Unwind_Context_Reg_Val. */
+ gcc_assert (dwarf_reg_size_table[index] <= sizeof (_Unwind_Context_Reg_Val));
context->by_value[index] = 1;
context->reg[index] = _Unwind_Get_Unwind_Context_Reg_Val (val);