https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105577
--- Comment #17 from Curdeius Curdeius ---
Thanks a lot for fixing this quickly!
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105577
--- Comment #4 from Curdeius Curdeius ---
Created attachment 52967
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52967=edit
A slightly reduced case
A bit more reduced reproducer.
Not sure it helps.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105577
--- Comment #2 from Curdeius Curdeius ---
Created attachment 52966
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52966=edit
Preprocessed source of the minimal reproducer
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105577
Curdeius Curdeius changed:
What|Removed |Added
CC||curdeius at gmail dot com
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105577
Bug ID: 105577
Summary: [12 Regression] ICE in delete_unmarked_insns, at
dce.cc:653
Product: gcc
Version: 12.1.0
Status: UNCONFIRMED
Severity: normal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67762
--- Comment #8 from Curdeius Curdeius ---
A different (rather small) reproduce.
https://godbolt.org/z/bz9sTd34o
It fails with all the versions of gcc from at least 7 (the above code needs
`auto` in template non-type parameter) to trunk from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102740
--- Comment #3 from Curdeius Curdeius ---
For other users with this problem, a workaround is to use a named struct. So
here, it would look like:
```
typedef struct {
const void* content;
} put_t;
typedef struct {
union {
put_t
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102740
--- Comment #1 from Curdeius Curdeius ---
Also, the bug doesn't appear (or TBH, it's a different bug), when the unnamed
union contains a `content` data member. But it seems to be a bug then as well,
because it's not what is intended to be
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102740
Bug ID: 102740
Summary: [11.2/12 Regression] Data member not found in struct
inside an unnamed union
Product: gcc
Version: 11.2.0
Status: UNCONFIRMED