public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/91355] [8/9/10/11 Regression] optimized code does not call destructor while unwinding after exception
       [not found] <bug-91355-4@http.gcc.gnu.org/bugzilla/>
@ 2020-11-09 14:57 ` bill.torpey at ullink dot com
  2021-05-14  9:52 ` [Bug tree-optimization/91355] [9/10/11/12 " jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 7+ messages in thread
From: bill.torpey at ullink dot com @ 2020-11-09 14:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91355

Bill Torpey <bill.torpey at ullink dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bill.torpey at ullink dot com

--- Comment #12 from Bill Torpey <bill.torpey at ullink dot com> ---
According to this link (https://linux.oracle.com/errata/ELBA-2020-1683.html) it
appears that this bug was fixed in gcc 9.2.1-2 (?), but I'm curious if this
applies only to Oracle Linux, or whether this bug has been fixed anywhere in
mainline gcc.  

We're experiencing runtime issues with gcc 8 that *may* be related to this bug.
 The issues do not occur with gcc 6, but we'd like to know if the bug has been
fixed in *any* releases of gcc.

TIA for any information you can provide.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug tree-optimization/91355] [9/10/11/12 Regression] optimized code does not call destructor while unwinding after exception
       [not found] <bug-91355-4@http.gcc.gnu.org/bugzilla/>
  2020-11-09 14:57 ` [Bug tree-optimization/91355] [8/9/10/11 Regression] optimized code does not call destructor while unwinding after exception bill.torpey at ullink dot com
@ 2021-05-14  9:52 ` jakub at gcc dot gnu.org
  2021-06-01  8:15 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-05-14  9:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91355

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|8.5                         |9.4

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 8 branch is being closed.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug tree-optimization/91355] [9/10/11/12 Regression] optimized code does not call destructor while unwinding after exception
       [not found] <bug-91355-4@http.gcc.gnu.org/bugzilla/>
  2020-11-09 14:57 ` [Bug tree-optimization/91355] [8/9/10/11 Regression] optimized code does not call destructor while unwinding after exception bill.torpey at ullink dot com
  2021-05-14  9:52 ` [Bug tree-optimization/91355] [9/10/11/12 " jakub at gcc dot gnu.org
@ 2021-06-01  8:15 ` rguenth at gcc dot gnu.org
  2022-05-27  9:41 ` [Bug tree-optimization/91355] [10/11/12/13 " rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-01  8:15 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91355

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|9.4                         |9.5

--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9.4 is being released, retargeting bugs to GCC 9.5.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug tree-optimization/91355] [10/11/12/13 Regression] optimized code does not call destructor while unwinding after exception
       [not found] <bug-91355-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2021-06-01  8:15 ` rguenth at gcc dot gnu.org
@ 2022-05-27  9:41 ` rguenth at gcc dot gnu.org
  2022-06-28 10:38 ` jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-05-27  9:41 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91355

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|9.5                         |10.4

--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9 branch is being closed

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug tree-optimization/91355] [10/11/12/13 Regression] optimized code does not call destructor while unwinding after exception
       [not found] <bug-91355-4@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2022-05-27  9:41 ` [Bug tree-optimization/91355] [10/11/12/13 " rguenth at gcc dot gnu.org
@ 2022-06-28 10:38 ` jakub at gcc dot gnu.org
  2023-04-13 10:51 ` rguenth at gcc dot gnu.org
  2023-07-07 10:35 ` [Bug tree-optimization/91355] [11/12/13/14 " rguenth at gcc dot gnu.org
  6 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-06-28 10:38 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91355

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.4                        |10.5

--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 10.4 is being released, retargeting bugs to GCC 10.5.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug tree-optimization/91355] [10/11/12/13 Regression] optimized code does not call destructor while unwinding after exception
       [not found] <bug-91355-4@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2022-06-28 10:38 ` jakub at gcc dot gnu.org
@ 2023-04-13 10:51 ` rguenth at gcc dot gnu.org
  2023-07-07 10:35 ` [Bug tree-optimization/91355] [11/12/13/14 " rguenth at gcc dot gnu.org
  6 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-04-13 10:51 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91355

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |matz at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org
   Last reconfirmed|2019-08-05 00:00:00         |2023-4-13

--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> ---
Re-confirmed.

The implicit IL contract with the following is incredibly fragile:

<bb 5> [count: 0]:
<L2>:
d.1_16 = d;
_17 = d.1_16 + 4294967295;
d = _17;
resx 4   // EDGE_EH fallthru

<bb 6> [count: 0]:
<L3>:
_20 = __builtin_eh_filter (1);

if we don't support any stmts inbetween the RESX and the landing pad then
we should prohibit splitting the edge.

I think the issue is that splitting the EH edge creates a new landing pad
(OK), but when we sink stmts into that empty block there's a fallthru
from that landing pad to another landing pad.  When ehcleanup then
elides the just RESX 4 containing forwarder via cleanup_empty_eh_merge_phis
that confuses it and the EH tree gets corrupt.

Into GIMPLE sink we get

Eh tree:
   1 allowed_exceptions land:{1,<L3>},{3,} filter :-1 types:int
     4 cleanup land:{2,<L2>}

which splitting two EH edges via split_edges_for_insertion turns into

Eh tree:
   1 allowed_exceptions land:{4,<L6>},{1,<L7>},{3,} filter :-1 types:int
     4 cleanup land:{2,<L2>}

remove_unreachable_handlers does

Eh tree:
   1 allowed_exceptions land:{4,<L6>},{1,<L7>} filter :-1 types:int
     4 cleanup land:{2,<L2>}

and cleanup_empty_eh

Eh tree:
   1 allowed_exceptions land:{4,<L3>},{1,<L7>} filter :-1 types:int
     4 cleanup

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug tree-optimization/91355] [11/12/13/14 Regression] optimized code does not call destructor while unwinding after exception
       [not found] <bug-91355-4@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2023-04-13 10:51 ` rguenth at gcc dot gnu.org
@ 2023-07-07 10:35 ` rguenth at gcc dot gnu.org
  6 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-07 10:35 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91355

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.5                        |11.5

--- Comment #18 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 10 branch is being closed.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-07-07 10:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-91355-4@http.gcc.gnu.org/bugzilla/>
2020-11-09 14:57 ` [Bug tree-optimization/91355] [8/9/10/11 Regression] optimized code does not call destructor while unwinding after exception bill.torpey at ullink dot com
2021-05-14  9:52 ` [Bug tree-optimization/91355] [9/10/11/12 " jakub at gcc dot gnu.org
2021-06-01  8:15 ` rguenth at gcc dot gnu.org
2022-05-27  9:41 ` [Bug tree-optimization/91355] [10/11/12/13 " rguenth at gcc dot gnu.org
2022-06-28 10:38 ` jakub at gcc dot gnu.org
2023-04-13 10:51 ` rguenth at gcc dot gnu.org
2023-07-07 10:35 ` [Bug tree-optimization/91355] [11/12/13/14 " rguenth at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).