https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64634
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Started with r151696, if for coverage the sequentially first bb with particular lineno matters, then indeed emitting: [pr64434.C : 14:12] D.2096 = __cxa_allocate_exception (4); [pr64434.C : 14:12] D.2098 = (int *) D.2096; [pr64434.C : 14:12] *D.2098 = 5; [pr64434.C : 14:11] __cxa_throw (D.2096, &_ZTIi, 0B); <D.2104>: [pr64434.C : 0:0] D.2100 = 0; [pr64434.C : 0:0] goto <D.2101>; <D.2101>: return D.2100; <D.2102>: [pr64434.C : 16:9] __cxa_end_catch (); resx 2 <D.2105>: eh_dispatch 1 resx 1 <D.2103>: [pr64434.C : 16:9] D.2099 = __builtin_eh_pointer (1); [pr64434.C : 16:9] __cxa_begin_catch (D.2099); [pr64434.C : 18:14] catchEx (); [pr64434.C : 16:9] __cxa_end_catch (); goto <D.2104>; means the first bb with lineno 16 is __cxa_end_catch, while in r151695 we emitted: [pr64434.C : 14:12] D.2093 = __cxa_allocate_exception (4); [pr64434.C : 14:12] D.2095 = (int *) D.2093; [pr64434.C : 14:12] *D.2095 = 5; [pr64434.C : 14:11] __cxa_throw (D.2093, &_ZTIi, 0B); <D.2104>: [pr64434.C : 16:9] __cxa_begin_catch ([pr64434.C : 16] <<<exception object>>>); [pr64434.C : 18:14] catchEx (); goto <D.2103>; <D.2098>: save_filt.1 = [filter_expr] <<<filter object>>>; save_eptr.0 = [exc_ptr_expr] <<<exception object>>>; [pr64434.C : 16:9] __cxa_end_catch (); <<<exception object>>> = save_eptr.0; <<<filter object>>> = save_filt.1; resx 3 <D.2101>: std::terminate (); <D.2103>: [pr64434.C : 16:9] __cxa_end_catch (); goto <D.2105>; <D.2105>: [pr64434.C : 0:0] D.2096 = 0; [pr64434.C : 0:0] goto <D.2097>; <D.2097>: return D.2096;