[Bug c++/104031] [12 regression] Global nested constructors generate invalid code since r12-6329-g4f6bc28fc7dd86bd
slyfox at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jan 14 22:46:02 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104031
--- Comment #5 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
gcc-11 for comparison did not seem to have `struct InfoD.2399 D.2453 =
{.arityD.2402=0};` style nodes and encoded stores explicitly:
main.cc.244t.optimized:
voidD.48 _GLOBAL__sub_I_main ()
{
struct InfoD.2377 D.2496;
...
D.2496.arityD.2380 = 0;
and produced expected RTL: main.cc.245r.expand:
;; Function _GLOBAL__sub_I_main (_GLOBAL__sub_I_main, funcdef_no=14,
decl_uid=2463, cgraph_uid=15, symbol_order=15) (executed once)
...
;;
;; Full RTL generated for this function:
;;
1: NOTE_INSN_DELETED
3: NOTE_INSN_BASIC_BLOCK 2
2: NOTE_INSN_FUNCTION_BEG
5: [r77:DI-0x4]=0 // <<<--- our lost store
6: {r82:DI=r77:DI-0x8;clobber flags:CC;}
7: si:DI=r82:DI
8: di:DI=`_ZL4s_op'
9: call [`_ZN14RegisterPrimOpC1E4Info'] argc:0
REG_CALL_DECL `_ZN14RegisterPrimOpC1E4Info'
REG_EH_REGION 0
More information about the Gcc-bugs
mailing list