From: Richard Biener Date: Tue, 12 Apr 2022 07:54:32 +0000 (+0200) Subject: tree-optimization/105232 - handle overly large sizes in component_ref_size X-Git-Tag: releases/gcc-11.3.0~80 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=008d568ac7eba4057172c52d306e09d174041c59;p=thirdparty%2Fgcc.git tree-optimization/105232 - handle overly large sizes in component_ref_size The following properly checks tree_fits_poly_int64_p before converting a size to a poly_int64. 2022-04-12 Richard Biener PR tree-optimization/105232 * tree.c (component_ref_size): Bail out for too large or non-constant sizes. (cherry picked from commit 1bd96873cf73c4f59de48e9bc0d17a498f1ede04) --- diff --git a/gcc/tree.c b/gcc/tree.c index 0f318430c77e..5f87455c68fd 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -13951,6 +13951,8 @@ component_ref_size (tree ref, special_array_member *sam /* = NULL */) to struct types with flexible array members. */ if (memsize) { + if (!tree_fits_poly_int64_p (memsize)) + return NULL_TREE; poly_int64 memsz64 = memsize ? tree_to_poly_int64 (memsize) : 0; if (known_lt (baseoff, memsz64)) {