aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-10-26 10:10:46 +0100
committerRichard Biener <rguenther@suse.de>2020-12-01 11:38:12 +0100
commit46384dc73076d945c9222b3f0850a9aa3e694eda (patch)
tree30bcf8812421f78782a9c28d3cecc41ddfccf11c /gcc
parent1631094a3eb4d1b1eb8b04db6f3b9ba6a5b645eb (diff)
downloadgcc-46384dc73076d945c9222b3f0850a9aa3e694eda.zip
gcc-46384dc73076d945c9222b3f0850a9aa3e694eda.tar.gz
gcc-46384dc73076d945c9222b3f0850a9aa3e694eda.tar.bz2
middle-end/97554 - avoid overflow in alloc size compute
This avoids overflow in the allocation size computations in sbitmap_vector_alloc when the result exceeds 2GB. 2020-10-26 Richard Biener <rguenther@suse.de> PR middle-end/97554 * sbitmap.c (sbitmap_vector_alloc): Use size_t for byte quantities to avoid overflow. (cherry picked from commit 50f9e1f4d458e36d306b2449c689e45492847f68)
Diffstat (limited to 'gcc')
-rw-r--r--gcc/sbitmap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/sbitmap.c b/gcc/sbitmap.c
index 967868a..6dacdd0 100644
--- a/gcc/sbitmap.c
+++ b/gcc/sbitmap.c
@@ -139,7 +139,8 @@ sbitmap_realloc (sbitmap src, unsigned int n_elms)
sbitmap *
sbitmap_vector_alloc (unsigned int n_vecs, unsigned int n_elms)
{
- unsigned int i, bytes, offset, elm_bytes, size, amt, vector_bytes;
+ unsigned int i, size;
+ size_t amt, bytes, vector_bytes, elm_bytes, offset;
sbitmap *bitmap_vector;
size = SBITMAP_SET_SIZE (n_elms);