Mercurial > hg > CbC > CbC_gcc
comparison gcc/unwind-c.c @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | a06113de4d67 |
children |
comparison
equal
deleted
inserted
replaced
52:c156f1bd5cd9 | 55:77e2b8dfacca |
---|---|
118 struct _Unwind_Exception *ue_header, | 118 struct _Unwind_Exception *ue_header, |
119 struct _Unwind_Context *context) | 119 struct _Unwind_Context *context) |
120 #endif | 120 #endif |
121 { | 121 { |
122 lsda_header_info info; | 122 lsda_header_info info; |
123 const unsigned char *language_specific_data, *p, *action_record; | 123 const unsigned char *language_specific_data, *p; |
124 _Unwind_Ptr landing_pad, ip; | 124 _Unwind_Ptr landing_pad, ip; |
125 int ip_before_insn = 0; | 125 int ip_before_insn = 0; |
126 | 126 |
127 #ifdef __ARM_EABI_UNWINDER__ | 127 #ifdef __ARM_EABI_UNWINDER__ |
128 if ((state & _US_ACTION_MASK) != _US_UNWIND_FRAME_STARTING) | 128 if ((state & _US_ACTION_MASK) != _US_UNWIND_FRAME_STARTING) |
179 while (--ip); | 179 while (--ip); |
180 | 180 |
181 /* Can never have null landing pad for sjlj -- that would have | 181 /* Can never have null landing pad for sjlj -- that would have |
182 been indicated by a -1 call site index. */ | 182 been indicated by a -1 call site index. */ |
183 landing_pad = (_Unwind_Ptr)cs_lp + 1; | 183 landing_pad = (_Unwind_Ptr)cs_lp + 1; |
184 if (cs_action) | |
185 action_record = info.action_table + cs_action - 1; | |
186 goto found_something; | 184 goto found_something; |
187 } | 185 } |
188 #else | 186 #else |
189 /* Search the call-site table for the action associated with this IP. */ | 187 /* Search the call-site table for the action associated with this IP. */ |
190 while (p < info.action_table) | 188 while (p < info.action_table) |
203 p = info.action_table; | 201 p = info.action_table; |
204 else if (ip < info.Start + cs_start + cs_len) | 202 else if (ip < info.Start + cs_start + cs_len) |
205 { | 203 { |
206 if (cs_lp) | 204 if (cs_lp) |
207 landing_pad = info.LPStart + cs_lp; | 205 landing_pad = info.LPStart + cs_lp; |
208 if (cs_action) | |
209 action_record = info.action_table + cs_action - 1; | |
210 goto found_something; | 206 goto found_something; |
211 } | 207 } |
212 } | 208 } |
213 #endif | 209 #endif |
214 | 210 |