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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
From:
```
(insn 7 2 8 2 (set (mem:SI (reg/f:DI 103 [ this ]) [1 MEM[(struct vector
*)this_4(D)].D.4476._M_end_of_storage+0 S4 A32])
        (const_int 0 [0])) "/app/example.cpp":6:27 69 {*movsi_aarch64}
     (nil))
(debug_insn 8 7 11 2 (debug_marker:BLK) "/app/example.cpp":6:3 -1
     (nil))
(insn 11 8 42 2 (set (mem:SI (plus:DI (reg/f:DI 103 [ this ])
                (const_int 4 [0x4])) [1 MEM[(struct vector *)this_4(D) +
4B].D.4476._M_end_of_storage+0 S4 A32])
        (const_int 0 [0])) "/app/example.cpp":6:27 69 {*movsi_aarch64}
     (expr_list:REG_EH_REGION (const_int 1 [0x1])
        (nil)))
```

To:
```
(insn 7 2 8 2 (set (mem:V2x4QI (reg/f:DI 103 [ this ]) [0 +0 S8 A32])
        (unspec:V2x4QI [
                (const_int 0 [0]) repeated x2
            ] UNSPEC_STP)) "/app/example.cpp":6:27 90 {*store_pair_4}
     (expr_list:REG_EH_REGION (const_int 1 [0x1])
        (nil)))
(debug_insn 8 7 42 2 (debug_marker:BLK) "/app/example.cpp":6:3 -1
     (nil))
(note 42 8 44 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
```

Most likely we should only handle stores instructions which cannot throw,
insn_nothrow_p .

Reply via email to