On 06/10/15 10:12, Eric Botcazou wrote: >> Joseph reminded me that I had forgotten about this patch. As mentioned >> here , I'm >> removing the XFAILs in the tests so people are likely to see new FAILs. >> >> I think the following targets will need similar fix as the one below: >> * MIPS >> * rs6000 >> * alpha >> * sparc >> * s390 >> * arm >> * sh >> * aarch64 >> >> I'm CCing the respective maintainers. You might want to XFAIL those tests. > > Thanks, here are the SPARC bits with an explanation for the other maintainers: > create_tmp_var_raw must be used instead of create_tmp_var because the hook can > be invoked outside of a function context; likewise for TREE_ADDRESSABLE vs > mark_addressable; TARGET_EXPR is needed for variables that are addressable > (because their address is taken) to force proper gimplification. > > Tested on SPARC/Solaris, applied on the mainline. > > > PR c/65345 > * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to > use create_tmp_var_raw rather than create_tmp_var. > Thanks for the explanation Eric, by that explanation I do not see the need to adjust for TARGET_EXPR or mark_addressable in the backends. Here are the patches that I'm testing - I will apply the ARM one after testing finishes - my previous testing broke because of some other reasons. The AArch64 patch cleared testing - ok to apply ? regards Ramana PR c/65345 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use create_tmp_var_raw instead of create_tmp_var. PR c/65345 * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv): Use create_tmp_var_raw instead of create_tmp_var.