re PR tree-optimization/36245 (internal compiler error: in build2_stat, at tree.c:3116)

2008-05-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36245
	* tree-ssa-address.c (add_to_parts): Deal with non-pointer
	bases.

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

From-SVN: r136029
This commit is contained in:
Richard Guenther 2008-05-27 13:10:18 +00:00 committed by Richard Biener
parent 35b8040518
commit 6fe2f65a17
2 changed files with 13 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2008-05-27 Richard Guenther <rguenther@suse.de>
PR tree-optimization/36245
* tree-ssa-address.c (add_to_parts): Deal with non-pointer
bases.
2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md: Replace all occurences of the 'm'

View File

@ -423,9 +423,13 @@ add_to_parts (struct mem_address *parts, tree elt)
/* Add ELT to base. */
type = TREE_TYPE (parts->base);
parts->base = fold_build2 (POINTER_PLUS_EXPR, type,
parts->base,
fold_convert (sizetype, elt));
if (POINTER_TYPE_P (type))
parts->base = fold_build2 (POINTER_PLUS_EXPR, type,
parts->base,
fold_convert (sizetype, elt));
else
parts->base = fold_build2 (PLUS_EXPR, type,
parts->base, elt);
}
/* Finds the most expensive multiplication in ADDR that can be