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;