This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] unbreak gcc.dg/tree-ssa/ssa-ccp-33.c on m68k (PR testsuite/47954)


On Tue, Mar 8, 2011 at 10:43 AM, Mikael Pettersson <mikpe@it.uu.se> wrote:
> gcc.dg/tree-ssa/ssa-ccp-33.c fails with gcc trunk on m68k-linux:
>
> ssa-ccp-33.c:(.text+0x2a): undefined reference to `link_error'
> ssa-ccp-33.c:(.text+0x2a): undefined reference to `link_error'
> FAIL: gcc.dg/tree-ssa/ssa-ccp-33.c (test for excess errors)
> ssa-ccp-33.c:(.text+0x2a): undefined reference to `link_error'
>
> The test case checks that the compiler is able to eliminate a
> runtime check that an aligned pointer-to-int remains aligned after
> a loop of increments. ?It uses sizeof to compute the alignment
> of int, but on m68k (and possibly others) the alignment of int
> is less than its size. ?The compiler is then unable to eliminate
> the broken alignment check, and the call to link_error () is not
> removed.
>
> Fixed by using __alignof__ instead. ?Regression tested on m68k-linux
> where it eliminated the FAIL for gcc.dg/tree-ssa/ssa-ccp-33.c.
> Also tested on i686-linux, no changes there.
>
> Ok for trunk?
>
> (Richard G. pre-approved this change on the PR entry, however I
> cannot commit it myself.)

Committed.
Richard.

> gcc/testsuite/
>
> 2011-03-08 ?Mikael Pettersson ?<mikpe@it.uu.se>
>
> ? ? ? ?PR testsuite/47954
> ? ? ? ?* gcc.dg/tree-ssa/ssa-ccp-33.c: Use __alignof__ not
> ? ? ? ?sizeof to compute alignment.
>
> --- gcc-4.6-20110305/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-33.c.~1~ ? ? 2010-08-06 13:47:31.000000000 +0200
> +++ gcc-4.6-20110305/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-33.c 2011-03-08 10:34:13.000000000 +0100
> @@ -8,7 +8,7 @@ void foo(int n)
> ? int *p;
> ? for (p = a; n != 0; --n, ++p)
> ? ? ;
> - ?if ((__SIZE_TYPE__)p & (sizeof (int) - 1))
> + ?if ((__SIZE_TYPE__)p & (__alignof__ (int) - 1))
> ? ? link_error ();
> ?}
> ?int main()
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]