aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2022-07-27 12:04:50 +0200
committerMartin Liska <mliska@suse.cz>2022-07-28 14:09:05 +0200
commit94963965caa603e74f1d5cdfa3fce6f75a0455db (patch)
tree31354872fff70cf915c8bb03d3a0d69eb4871bd5 /gcc
parentf0400e2a86888c08bbdba511f9abd2d4e7ba8e9e (diff)
downloadgcc-94963965caa603e74f1d5cdfa3fce6f75a0455db.zip
gcc-94963965caa603e74f1d5cdfa3fce6f75a0455db.tar.gz
gcc-94963965caa603e74f1d5cdfa3fce6f75a0455db.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;