aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2018-09-06 15:39:48 +0000
committerJeff Law <law@gcc.gnu.org>2018-09-06 09:39:48 -0600
commit6d9001072d3ed5a82b8277426e6dd41a1c605990 (patch)
treef152a5f3a4863b32753531cb6e74a16358a52921 /gcc/c
parent6847c656b4153fbd0b552ac5051dc7b3ec44246a (diff)
downloadgcc-6d9001072d3ed5a82b8277426e6dd41a1c605990.zip
gcc-6d9001072d3ed5a82b8277426e6dd41a1c605990.tar.gz
gcc-6d9001072d3ed5a82b8277426e6dd41a1c605990.tar.bz2
varasm.c (output_constructor_regular_field): Check TYPE_SIZE_UNIT of the init value.
* varasm.c (output_constructor_regular_field): Check TYPE_SIZE_UNIT of the init value. * c-common.c (complete_flexible_array_elts): New helper function. * c-common.h (complete_flexible_array_elts): Declare. * c-decl.c (finish_decl): Call complete_flexible_array_elts. * decl.c (check_initializer): Call cp_complete_array_type. From-SVN: r264147
Diffstat (limited to 'gcc/c')
-rw-r--r--gcc/c/ChangeLog4
-rw-r--r--gcc/c/c-decl.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 5c18f63..74d34b1 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,7 @@
+2018-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * c-decl.c (finish_decl): Call complete_flexible_array_elts.
+
2018-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
* c-decl.c (finish_decl): Call braced_list_to_string here ...
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index fd08d72..fdcfbde 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -5042,6 +5042,8 @@ finish_decl (tree decl, location_t init_loc, tree init,
if (init && TREE_CODE (init) == CONSTRUCTOR)
add_flexible_array_elts_to_size (decl, init);
+ complete_flexible_array_elts (DECL_INITIAL (decl));
+
if (DECL_SIZE (decl) == NULL_TREE && TREE_TYPE (decl) != error_mark_node
&& COMPLETE_TYPE_P (TREE_TYPE (decl)))
layout_decl (decl, 0);