From ddce352881f2a8fcea7e43d6e0354b5d03e1874e Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 24 Feb 1999 11:46:56 +0000 Subject: [PATCH] * pt.c (tsubst): Allow an array of explicit size zero. From-SVN: r25400 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/pt.c | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8aacd3f8a49..348739f079c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +1999-02-24 Jason Merrill + + * pt.c (tsubst): Allow an array of explicit size zero. + 1999-02-23 Jason Merrill * errfn.c: Change varargs code to look like toplev.c. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 905bdf6fe14..b13a8c832eb 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -6017,9 +6017,9 @@ tsubst (t, args, complain, in_decl) return t; { - tree max = TREE_OPERAND (TYPE_MAX_VALUE (t), 0); + tree max, omax = TREE_OPERAND (TYPE_MAX_VALUE (t), 0); - max = tsubst_expr (max, args, complain, in_decl); + max = tsubst_expr (omax, args, complain, in_decl); if (max == error_mark_node) return error_mark_node; @@ -6032,7 +6032,13 @@ tsubst (t, args, complain, in_decl) return itype; } - if (integer_zerop (max) || INT_CST_LT (max, integer_zero_node)) + if (integer_zerop (omax)) + { + /* Still allow an explicit array of size zero. */ + if (pedantic) + pedwarn ("creating array with size zero"); + } + else if (integer_zerop (max) || INT_CST_LT (max, integer_zero_node)) { /* [temp.deduct] -- 2.30.2