https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108684
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #8)
> I think simple_dce_from_worklist is incorrect of removing this inline-asm in
> the first place.
> Take:
> ```
> static int t;
>
> int f (int *a)
> {
> int t1;
> asm (" " : "=r" (t1) : : "memory");
> t = t1;
> return *a;
> }
> ```
> The inline-asm could have written to *a but now it has been removed.
I think that is how inline asm always behaved. If it is not ok to be DCEd when
the result is dead, one needs to use volatile keyword.