From cc078cf85295ec5d0a63a16afbd045efac0d455e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 27 Jul 2022 12:04:50 +0200 Subject: [PATCH] opts: Add an assertion to help static analyzers [PR106332] This function would have UB if called with empty candidates vector (accessing p[-1] where p is malloc (0) result). As analyzed in the PR, we never call it with empty vector, so this just adds an assertion to make it clear. 2022-07-27 Jakub Jelinek PR middle-end/106332 * opts-common.cc (candidates_list_and_hint): Add gcc_assert that candidates is not an empty vector. --- gcc/opts-common.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gcc/opts-common.cc b/gcc/opts-common.cc index 1663be1f602..8097c058c72 100644 --- a/gcc/opts-common.cc +++ b/gcc/opts-common.cc @@ -1347,6 +1347,8 @@ candidates_list_and_hint (const char *arg, char *&str, const char *candidate; char *p; + gcc_assert (!candidates.is_empty ()); + FOR_EACH_VEC_ELT (candidates, i, candidate) len += strlen (candidate) + 1; -- 2.47.2