diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/pr32399.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr32399.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr32399.c b/gcc/testsuite/gcc.c-torture/compile/pr32399.c new file mode 100644 index 000000000..cc2b1b189 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr32399.c @@ -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); + } + } +} + |