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