From: Martin Liska Date: Mon, 12 Jul 2021 08:59:06 +0000 (+0200) Subject: offloading: fix -foffload hinting X-Git-Tag: basepoints/gcc-13~6073 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b8b37d1b6301855213b8d4860feaeb74d464c6b;p=thirdparty%2Fgcc.git offloading: fix -foffload hinting PR sanitizer/101425 gcc/ChangeLog: * gcc.c (check_offload_target_name): Call candidates_list_and_hint only if we have a candidate. --- diff --git a/gcc/gcc.c b/gcc/gcc.c index f086dd47b912..12b3440c3420 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -4001,7 +4001,6 @@ check_offload_target_name (const char *target, ptrdiff_t len) } if (!c) { - char *s; auto_vec candidates; size_t olen = strlen (OFFLOAD_TARGETS) + 1; char *cand = XALLOCAVEC (char, olen); @@ -4015,15 +4014,19 @@ check_offload_target_name (const char *target, ptrdiff_t len) error ("GCC is not configured to support %qs as offload target", target2); - const char *hint = candidates_list_and_hint (target2, s, candidates); if (candidates.is_empty ()) inform (UNKNOWN_LOCATION, "no offloading targets configured"); - else if (hint) - inform (UNKNOWN_LOCATION, - "valid offload targets are: %s; did you mean %qs?", s, hint); else - inform (UNKNOWN_LOCATION, "valid offload targets are: %s", s); - XDELETEVEC (s); + { + char *s; + const char *hint = candidates_list_and_hint (target2, s, candidates); + if (hint) + inform (UNKNOWN_LOCATION, + "valid offload targets are: %s; did you mean %qs?", s, hint); + else + inform (UNKNOWN_LOCATION, "valid offload targets are: %s", s); + XDELETEVEC (s); + } return false; } return true;