Message ID | 4bc07dec7a614761e45d9c3f665b691d92361f76.1419439879.git.segher@kernel.crashing.org |
---|---|
State | New |
Headers | show |
On Wed, Dec 24, 2014 at 12:05 PM, Segher Boessenkool <segher@kernel.crashing.org> wrote: > The dlmzb. instruction requires an 8-byte aligned operand. The testcases > try to enforce that by passing an arg as "long long *", but current GCC > still assumes an alignment of 1 (correctly I think -- the pointer is only > used as pointer to char). > > This patch changes the testcases to explicitly have an 8-byte aligned datum. > > Okay for mainline? > > > Segher > > > 2014-12-24 Segher Boessenkool <segher@kernel.crashing.org> > > gcc/testsuite/ > * gcc.target/powerpc/405-dlmzb-strlen-1.c: Explicitly align arg. > * gcc.target/powerpc/440-dlmzb-strlen-1.c: Ditto. Okay. Thanks, David
diff --git a/gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c b/gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c index b06a74f..52675ba 100644 --- a/gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c +++ b/gcc/testsuite/gcc.target/powerpc/405-dlmzb-strlen-1.c @@ -12,8 +12,10 @@ typedef __SIZE_TYPE__ size_t; size_t strlen(const char *); +char s[100] __attribute__ ((aligned (8))); + size_t -strlen8(const long long *s) +strlen8(void) { - return strlen((const char *)s); + return strlen(s); } diff --git a/gcc/testsuite/gcc.target/powerpc/440-dlmzb-strlen-1.c b/gcc/testsuite/gcc.target/powerpc/440-dlmzb-strlen-1.c index d255bd7..0373466 100644 --- a/gcc/testsuite/gcc.target/powerpc/440-dlmzb-strlen-1.c +++ b/gcc/testsuite/gcc.target/powerpc/440-dlmzb-strlen-1.c @@ -12,8 +12,10 @@ typedef __SIZE_TYPE__ size_t; size_t strlen(const char *); +char s[100] __attribute__ ((aligned (8))); + size_t -strlen8(const long long *s) +strlen8(void) { - return strlen((const char *)s); + return strlen(s); }