On 09/10/2012 01:41 AM, Zhenqiang Chen wrote: > In function maybe_record_trace_start, there is a check: > > /* We ought to have the same state incoming to a given trace no > matter how we arrive at the trace. Anything else means we've > got some kind of optimization error. */ > gcc_checking_assert (cfi_row_equal_p (cur_row, ti->beg_row));
The assert is most definitely valid. The check makes certain that the unwind info as seen by any two paths leading to a common location are the same. When this fails, typically one of two things has happened: (1) The notes for the epilogue unwind info are incorrect, (2) We have applied an invalid code transformation in some earler optimization pass. We can't tell what the real problem is without more information. r~