https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82365
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|stack locations are not |stack locations are not
|consolidated if noreturn |consolidated if (single)
|function is on the path |noreturn function is on the
| |path
--- Comment #14 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The problem here is we get:
```
;; basic block 8, loop depth 0
;; pred: 7
;; 10
;; 12
;; 14
fortify_panic ();
;; succ:
```
we find this bb as being a duplicate which causes all the variables a live in
the BB all at the same time. Even though non of the edges even can go through
another.
Note using ` -fno-tree-pre -fno-code-hoisting` works around the issue too.
`asm volatile("");` works around the issue of finding that this is a duplicated
bb.