From: baldrick Date: Sat, 9 Apr 2011 16:18:01 +0000 (+0000) Subject: Bail out rather than crashing in array_type_nelts if TYPE_MAX_VALUE is null. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=33672307f2406abf316c6ff839b9b660ca585f05;p=thirdparty%2Fgcc.git Bail out rather than crashing in array_type_nelts if TYPE_MAX_VALUE is null. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172227 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0ed308626dd7..c9976bd9f6f7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2011-04-09 Duncan Sands + + * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set. + 2011-04-08 Eric Botcazou * combine.c (combine_validate_cost): Adjust comments. Set registered diff --git a/gcc/tree.c b/gcc/tree.c index ee47982baf0b..cf6fa5068a7f 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -2462,6 +2462,10 @@ array_type_nelts (const_tree type) min = TYPE_MIN_VALUE (index_type); max = TYPE_MAX_VALUE (index_type); + /* TYPE_MAX_VALUE may not be set if the array has unknown length. */ + if (!max) + return error_mark_node; + return (integer_zerop (min) ? max : fold_build2 (MINUS_EXPR, TREE_TYPE (max), max, min));