summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-09-24 20:27:06 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-09-24 20:27:06 +0000
commit347e5e07ef4db24f295a4513b381bbb943ddf9f4 (patch)
tree41c27cab9cc39bce19417599b38fa7d6564585ed
parent768be674db6d1ac130eb08b5fa56db0baba8df79 (diff)
downloadgcc-347e5e07ef4db24f295a4513b381bbb943ddf9f4.tar.gz
* varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45785 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/varasm.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 64200d65d74..b5c46950ebd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2001-09-24 DJ Delorie <dj@redhat.com>
+
+ * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
+
2001-09-24 Ulrich Weigand <uweigand@de.ibm.com>:
* flow.c (delete_dead_jumptables): Delete jumptable if the only
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 9230fcf173b..68c51655c36 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -4585,6 +4585,13 @@ array_size_for_constructor (val)
{
tree max_index, i;
+ if (TREE_CODE (val) == STRING_CST)
+ {
+ HOST_WIDE_INT len = TREE_STRING_LENGTH(val);
+ HOST_WIDE_INT esz = int_size_in_bytes (TREE_TYPE (TREE_TYPE (val)));
+ HOST_WIDE_INT tsz = len * esz;
+ return tsz;
+ }
max_index = NULL_TREE;
for (i = CONSTRUCTOR_ELTS (val); i ; i = TREE_CHAIN (i))
{