https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118745
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> --- I guess it does not show in practice as '&odv->append_args_list->where' will be implemented as '&odv->append_args_list' + offset – and the result is never actually used. - At least, 'valgrind' does not detect it. The issue is mixing up the append_arg vs. adjust_arg variables, which are similarly named and also appear in the (almost) the same context. --- a/gcc/fortran/trans-openmp.cc +++ b/gcc/fortran/trans-openmp.cc @@ -8841,3 +8841,3 @@ gfc_trans_omp_declare_variant (gfc_namespace *ns) variant_proc_sym->formal = extra_arg; - locus *loc = (odv->adjust_args_list + locus *loc = (odv->append_args_list ? &odv->append_args_list->where : &odv->where);