summaryrefslogtreecommitdiff
path: root/gcc/c-aux-info.c
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-07-20 01:53:57 +0000
committerRichard Stallman <rms@gnu.org>1992-07-20 01:53:57 +0000
commit7e53036d32da0c9669e2465aefa842bf772bc477 (patch)
treee98a595fb40eba69f940759d112cf608eae9b007 /gcc/c-aux-info.c
parente5d91d5ef8d7e08b50f990dcaed4cbab8936154f (diff)
downloadgcc-7e53036d32da0c9669e2465aefa842bf772bc477.tar.gz
(gen_type): For array type, state the size.
From-SVN: r1634
Diffstat (limited to 'gcc/c-aux-info.c')
-rw-r--r--gcc/c-aux-info.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/c-aux-info.c b/gcc/c-aux-info.c
index 27dad2aba84..2e1506447e3 100644
--- a/gcc/c-aux-info.c
+++ b/gcc/c-aux-info.c
@@ -384,7 +384,18 @@ gen_type (ret_val, t, style)
return ret_val;
case ARRAY_TYPE:
- ret_val = gen_type (concat (ret_val, "[]"), TREE_TYPE (t), style);
+ if (TYPE_SIZE (t) == 0 || TREE_CODE (TYPE_SIZE (t)) != INTEGER_CST)
+ ret_val = gen_type (concat (ret_val, "[]"), TREE_TYPE (t), style);
+ else if (int_size_in_bytes (t) == 0)
+ ret_val = gen_type (concat (ret_val, "[0]"), TREE_TYPE (t), style);
+ else
+ {
+ int size = (int_size_in_bytes (t) / int_size_in_bytes (TREE_TYPE (t)));
+ char buff[10];
+ sprintf (buff, "[%d]", size);
+ ret_val = gen_type (concat (ret_val, buff),
+ TREE_TYPE (t), style);
+ }
break;
case FUNCTION_TYPE: