Drea Pinski (pinskia) <[email protected]> requested changes to the code:
> +++ gcc/rust/backend/rust-intrinsic-handlers.cc > @@ -751,0 +768,4 @@ > + > + // Most intrinsic functions are pure but not the atomic ones > + TREE_READONLY (fndecl) = 0; > + TREE_SIDE_EFFECTS (fndecl) = 1; Huh, shouldn't this be done as part of compile_intrinsic_function? > +++ gcc/rust/backend/rust-intrinsic-handlers.cc > @@ -751,0 +781,4 @@ > + enter_intrinsic_block (ctx, fndecl); > + > + auto dst = Backend::var_expression (param_vars[0], UNDEF_LOCATION); > + TREE_READONLY (dst) = 0; Why are you setting READONLY here? > +++ gcc/rust/backend/rust-intrinsic-handlers.cc > @@ -751,0 +811,4 @@ > + = Backend::return_statement (fndecl, exchange_call, UNDEF_LOCATION); > + > + TREE_READONLY (exchange_call) = 0; > + TREE_SIDE_EFFECTS (exchange_call) = 1; This seems wrong. -- https://forge.sourceware.org/gcc/gcc-TEST/pulls/161#issuecomment-6246
