diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/expr.c | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 73e6ad9..9d39724 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (categorize_ctor_elements_1, case STRING_CST): New case. + 2004-11-28 Matt Kraai <kraai@alumni.cmu.edu> PR diagnostic/17594 @@ -4152,12 +4152,18 @@ categorize_ctor_elements_1 (tree ctor, HOST_WIDE_INT *p_nz_elts, if (!initializer_zerop (value)) nz_elts += mult; break; + + case STRING_CST: + nz_elts += mult * TREE_STRING_LENGTH (value); + break; + case COMPLEX_CST: if (!initializer_zerop (TREE_REALPART (value))) nz_elts += mult; if (!initializer_zerop (TREE_IMAGPART (value))) nz_elts += mult; break; + case VECTOR_CST: { tree v; |