mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-24 11:24:05 +08:00
re PR middle-end/32399 (ICE in build2_stat, at tree.c:3074)
2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> PR middle-end/32399 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR when adding to the base and convert ELT to sizetype instead of type. 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com> RP middle-end/32399 * gcc.c-torture/compile/pr32399.c: New testcase. From-SVN: r127196
This commit is contained in:
parent
814d1e640c
commit
a83e7facc5
@ -1,3 +1,9 @@
|
||||
2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||
|
||||
PR middle-end/32399
|
||||
* tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
|
||||
when adding to the base and convert ELT to sizetype instead of type.
|
||||
|
||||
2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||
|
||||
PR middle-end/32304
|
||||
|
@ -1,3 +1,8 @@
|
||||
2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||
|
||||
RP middle-end/32399
|
||||
* gcc.c-torture/compile/pr32399.c: New testcase.
|
||||
|
||||
2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||
|
||||
PR middle-end/32304
|
||||
|
16
gcc/testsuite/gcc.c-torture/compile/pr32399.c
Normal file
16
gcc/testsuite/gcc.c-torture/compile/pr32399.c
Normal file
@ -0,0 +1,16 @@
|
||||
void f(unsigned char *src, unsigned char *dst, int num, unsigned char *pos, unsigned char *diffuse, int hasdiffuse, unsigned char *specular, int hasspecular) {
|
||||
int i;
|
||||
|
||||
for(i=num;i--;) {
|
||||
float *p = (float *) ((__SIZE_TYPE__) dst + (__SIZE_TYPE__) pos);
|
||||
if(hasdiffuse) {
|
||||
unsigned int *dstColor = (unsigned int *) (dst + i + (__SIZE_TYPE__) diffuse);
|
||||
*dstColor = * (unsigned int *) ( ((__SIZE_TYPE__) src + (__SIZE_TYPE__) diffuse) + i);
|
||||
}
|
||||
if(hasspecular) {
|
||||
unsigned int *dstColor = (unsigned int *) (dst + i + (__SIZE_TYPE__) specular);
|
||||
*dstColor = * (unsigned int *) ( ((__SIZE_TYPE__) src + (__SIZE_TYPE__) specular) + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -422,9 +422,9 @@ add_to_parts (struct mem_address *parts, tree elt)
|
||||
|
||||
/* Add ELT to base. */
|
||||
type = TREE_TYPE (parts->base);
|
||||
parts->base = fold_build2 (PLUS_EXPR, type,
|
||||
parts->base = fold_build2 (POINTER_PLUS_EXPR, type,
|
||||
parts->base,
|
||||
fold_convert (type, elt));
|
||||
fold_convert (sizetype, elt));
|
||||
}
|
||||
|
||||
/* Finds the most expensive multiplication in ADDR that can be
|
||||
|
Loading…
Reference in New Issue
Block a user