1 From: Jakub Jelinek <jakub at redhat dot com>
2 Subject: [PATCH] Set TREE_READONLY const POD arrays with size determined from initializer (PR c++/21454)
4 This is a fallout of the PR c++/20073 fix.
6 const int a[] = { 0, 1, 2, 3 };
7 when cp_apply_type_quals_to_decl is called, its type is not complete yet,
8 so C++ frontend does not set TREE_READONLY flag. But such variables
9 aren't put into incomplete_vars chain either, so nothing sets the flag
12 2005-05-11 Jakub Jelinek <jakub@redhat.com>
15 * decl.c (maybe_deduce_size_from_array_init): Call
16 cp_apply_type_quals_to_decl after completing array type.
18 * g++.dg/opt/const4.C: New test.
20 --- gcc/gcc/cp/decl.c 2005-05-11 11:50:14.000000000 +0200
21 +++ gcc/gcc/cp/decl.c 2005-05-11 19:03:28.000000000 +0200
22 @@ -3933,6 +3933,8 @@ maybe_deduce_size_from_array_init (tree
24 error ("zero-size array %qD", decl);
26 + cp_apply_type_quals_to_decl (cp_type_quals (TREE_TYPE (decl)), decl);
28 layout_decl (decl, 0);