aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2022-07-27 12:04:50 +0200
committerJakub Jelinek <jakub@redhat.com>2022-07-27 12:04:50 +0200
commitcc078cf85295ec5d0a63a16afbd045efac0d455e (patch)
tree5899a502b566b5dbf7d52d1e942bc97efa434cac /gcc
parent0bc1566dec0cab9410723c96d2ef3280fdab8e8e (diff)
downloadgcc-cc078cf85295ec5d0a63a16afbd045efac0d455e.zip
gcc-cc078cf85295ec5d0a63a16afbd045efac0d455e.tar.gz
gcc-cc078cf85295ec5d0a63a16afbd045efac0d455e.tar.bz2
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 <jakub@redhat.com> PR middle-end/106332 * opts-common.cc (candidates_list_and_hint): Add gcc_assert that candidates is not an empty vector.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/opts-common.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/opts-common.cc b/gcc/opts-common.cc
index 1663be1..8097c05 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;