https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127688

--- Comment #4 from Yongqiang Tian <yqtian668 at gmail dot com> ---
(In reply to Jakub Jelinek from comment #3)
> Selective scheduling is known to break compare-debug, after all,
> -fvar-tracking-assignments is turned off by default in that case:
>   if (!opts_set->x_flag_var_tracking_assignments)
>     opts->x_flag_var_tracking_assignments
>       = (opts->x_flag_var_tracking
>          && !(opts->x_flag_selective_scheduling
>               || opts->x_flag_selective_scheduling2));
> and the compiler should warn you that it doesn't support that
>       && (opts->x_flag_selective_scheduling
>           || opts->x_flag_selective_scheduling2))
>     warning_at (loc, 0,
>                 "var-tracking-assignments changes selective scheduling");

Oh I see. Thanks a lot for advice, Jakub.

I rerun the code and I can confirm that both pr80463.c and pr85423.c pass
-fcompare-debug once the explicit -fvar-tracking-assignments is removed. the
failure only occurs with VTA forced on together with -fselective-scheduling2,
which is exactly the combination GCC warns about ("var-tracking-assignments
changes selective scheduling"). 

My test harness compiled with -w, so it missed that warning. I am sorry for the
noise. I've changed the harness to skip configurations for which GCC emits that
warning.

Could you please help me to mark this as invalid or something? It seems I can
only set it to resovled, and I am not sure if it is ok to do so.

Reply via email to