Index: typeck2.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/cp/typeck2.c,v retrieving revision 1.192 diff -u -p -r1.192 typeck2.c --- typeck2.c 1 Aug 2005 04:02:26 -0000 1.192 +++ typeck2.c 2 Oct 2005 03:36:41 -0000 @@ -613,10 +613,13 @@ store_init_value (tree decl, tree init) value = digest_init (type, init); /* If the initializer is not a constant, fill in DECL_INITIAL with the bits that are constant, and then return an expression that - will perform the dynamic initialization. */ + will perform the dynamic initialization. We don't have to do this + for local variables either. */ if (value != error_mark_node && (TREE_SIDE_EFFECTS (value) - || ! initializer_constant_valid_p (value, TREE_TYPE (value)))) + || ! initializer_constant_valid_p (value, TREE_TYPE (value))) + && (TREE_CODE (decl) != VAR_DECL + || TREE_STATIC (dest))) return split_nonconstant_init (decl, value); /* If the value is a constant, just put it in DECL_INITIAL. If DECL is an automatic variable, the middle end will turn this into a