trans.c (fold_constant_decl_in_expr): If the index is not itself constant then bail out.

* gcc-interface/trans.c (fold_constant_decl_in_expr) <ARRAY_REF>: If
	the index is not itself constant then bail out.

From-SVN: r230558
This commit is contained in:
Eric Botcazou 2015-11-18 18:19:57 +00:00 committed by Eric Botcazou
parent 70318db4b1
commit a239279ee5
2 changed files with 8 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2015-11-18 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (fold_constant_decl_in_expr) <ARRAY_REF>: If
the index is not itself constant then bail out.
2015-11-18 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Try_Container_Indexing): When constructing the

View File

@ -975,6 +975,9 @@ fold_constant_decl_in_expr (tree exp)
case ARRAY_REF:
case ARRAY_RANGE_REF:
/* If the index is not itself constant, then nothing can be folded. */
if (!TREE_CONSTANT (TREE_OPERAND (exp, 1)))
return exp;
op0 = fold_constant_decl_in_expr (TREE_OPERAND (exp, 0));
if (op0 == TREE_OPERAND (exp, 0))
return exp;