re PR c++/25632 (ICE with const int copied into two different functions)

PR c++/25632
	* init.c (constant_value_1): Unshare use of DECL_INITIAL.  Fix a typo
	in condition.

From-SVN: r109354
This commit is contained in:
Zdenek Dvorak 2006-01-04 23:46:09 +01:00 committed by Zdenek Dvorak
parent 7a6d30ce0d
commit 57b37fe381
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2005-01-04 Zdenek Dvorak <dvorakz@suse.cz>
PR c++/25632
* init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
in condition.
2006-01-04 Chris Lattner <sabre@gnu.org>
* typeck2.c: update copyright to 2006

View File

@ -1503,7 +1503,7 @@ constant_value_1 (tree decl, bool integral_p)
mark_used (decl);
init = DECL_INITIAL (decl);
}
if (!(init || init == error_mark_node)
if (!init || init == error_mark_node
|| !TREE_TYPE (init)
|| (integral_p
? !INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (init))
@ -1516,7 +1516,7 @@ constant_value_1 (tree decl, bool integral_p)
|| TREE_CODE (init) == CONSTRUCTOR
|| TREE_CODE (init) == STRING_CST)))
break;
decl = init;
decl = unshare_expr (init);
}
return decl;
}