We should not call candidates_list_and_hint if there are no candidates.
Ready after testing finishes?
Thanks,
Martin
sanitizer/101425
gcc/ChangeLog:
* gcc.c (check_offload_target_name): Call
candidates_list_and_hint only if we have a candidate.
---
gcc/gcc.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/gcc/gcc.c b/gcc/gcc.c
index f086dd47b91..16a8aa8f17b 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4015,15 +4015,18 @@ 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);
+ {
+ 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;
--
2.32.0