re PR middle-end/37976 (ICE in insert_into_preds_of_block)

2008-11-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37976
	* builtins.c (fold_builtin_strspn): Return a size_t.
	(fold_builtin_strcspn): Likewise.

	* gcc.c-torture/compile/pr37976.c: New testcase.

From-SVN: r141514
This commit is contained in:
Richard Guenther 2008-11-01 12:47:38 +00:00 committed by Richard Biener
parent 8dd5e93af6
commit 002bd9f0ac
4 changed files with 20 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2008-11-01 Richard Guenther <rguenther@suse.de>
PR middle-end/37976
* builtins.c (fold_builtin_strspn): Return a size_t.
(fold_builtin_strcspn): Likewise.
2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
* config/rs6000/rs6000.c (rs6000_file_start): Output gnu

View file

@ -11398,7 +11398,7 @@ fold_builtin_strspn (tree s1, tree s2)
if ((p1 && *p1 == '\0') || (p2 && *p2 == '\0'))
/* Evaluate and ignore both arguments in case either one has
side-effects. */
return omit_two_operands (integer_type_node, integer_zero_node,
return omit_two_operands (size_type_node, size_zero_node,
s1, s2);
return NULL_TREE;
}
@ -11444,8 +11444,8 @@ fold_builtin_strcspn (tree s1, tree s2)
{
/* Evaluate and ignore argument s2 in case it has
side-effects. */
return omit_one_operand (integer_type_node,
integer_zero_node, s2);
return omit_one_operand (size_type_node,
size_zero_node, s2);
}
/* If the second argument is "", return __builtin_strlen(s1). */

View file

@ -1,3 +1,8 @@
2008-11-01 Richard Guenther <rguenther@suse.de>
PR middle-end/37976
* gcc.c-torture/compile/pr37976.c: New testcase.
2008-11-01 Dennis Wassel <dennis.wassel@gmail.com>
PR fortran/37159

View file

@ -0,0 +1,6 @@
void percent_x(int ch, char *p, char* ok_chars)
{
char *cp = ch == 'a' ? p : "";
for (;*(cp += __builtin_strspn (cp, ok_chars));)
;
}