diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c738fb0127918e316160b2efcfb973196e161043..ebf92c71fddd968697cf110e65a5d93040ae6ffa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2010-06-01  Jan Hubicka  <jh@suse.cz>
+
+	* tree-switch-conversion.c (build_one_array): Make it readonly.
+
 2010-06-01  Richard Guenther  <rguenther@suse.de>
 
 	* optabs.c (init_optabs): Guard all accesses to reinit.
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index 0ff937f8030d1477cfcfcfef1acaab073928fbc0..cf3202ca905115f5506ed1c79e7c08b26059c1c0 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -526,6 +526,7 @@ build_one_array (gimple swtch, int num, tree arr_index_type, gimple phi,
       DECL_NAME (decl) = create_tmp_var_name ("CSWTCH");
       DECL_ARTIFICIAL (decl) = 1;
       TREE_CONSTANT (decl) = 1;
+      TREE_READONLY (decl) = 1;
       add_referenced_var (decl);
       varpool_mark_needed_node (varpool_node (decl));
       varpool_finalize_decl (decl);