This change fixes issues like this: gcc.dg/gomp/pr27573.c: In function ‘main._omp_fn.0’: gcc.dg/gomp/pr27573.c:19:1: error: non-trivial conversion in ‘ssa_name’ 19 | } | ^ long int long unsigned int # .MEM_19 = VDEF <.MEM_18> __gcov7.main._omp_fn.0[0] = PROF_time_profile_12; during IPA pass: profile gcc.dg/gomp/pr27573.c:19:1: internal compiler error: verify_gimple failed
gcc/ChangeLog: PR middle-end/112634 * tree-profile.cc (gen_assign_counter_update): Cast the unsigned result type of __atomic_add_fetch() to the signed counter type. --- gcc/tree-profile.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/tree-profile.cc b/gcc/tree-profile.cc index 68db09f6189..54938e1d165 100644 --- a/gcc/tree-profile.cc +++ b/gcc/tree-profile.cc @@ -284,7 +284,9 @@ gen_assign_counter_update (gimple_stmt_iterator *gsi, gcall *call, tree func, tree tmp = make_temp_ssa_name (result_type, NULL, name); gimple_set_lhs (call, tmp); gsi_insert_after (gsi, call, GSI_NEW_STMT); - gassign *assign = gimple_build_assign (result, tmp); + gassign *assign = gimple_build_assign (result, + build_int_cst (TREE_TYPE (result), + tmp)); gsi_insert_after (gsi, assign, GSI_NEW_STMT); } else -- 2.35.3