Jakub Jelinek wrote: > On Fri, Jan 13, 2012 at 07:40:59PM +0100, Georg-Johann Lay wrote: >> The ilp32 is the closes match: >> >> The source casts pointer to int, int to pointer, long to int, uses 32-bit >> initializers for int, assumes size_t is unsigned long any maybe others. > > No. The source is just fine for any target where sizeof (long) == sizeof > (void *). > So both ilp32 and lp64.
Now just factored out avr. There is no dg-requite to filter out long!=void*, or did I miss something? Ok to apply? Johann * gcc.dg/lto/20091013-1_1.c: xfail for avr. * gcc.dg/lto/20091013-1_2.c: xfail for avr. Index: gcc.dg/lto/20091013-1_1.c =================================================================== --- gcc.dg/lto/20091013-1_1.c (revision 183472) +++ gcc.dg/lto/20091013-1_1.c (working copy) @@ -1,3 +1,4 @@ +/* { dg-xfail-if "cast to pointer of different size" { "avr-*-*" } { "*" } { "" } } */ typedef struct HDC__ { int unused; } *HDC; typedef struct HFONT__ { int unused; } *HFONT; Index: gcc.dg/lto/20091013-1_2.c =================================================================== --- gcc.dg/lto/20091013-1_2.c (revision 183472) +++ gcc.dg/lto/20091013-1_2.c (working copy) @@ -1,3 +1,4 @@ +/* { dg-xfail-if "cast to pointer of different size" { "avr-*-*" } { "*" } { "" } } */ typedef struct HDC__ { int unused; } *HDC; typedef struct HFONT__ { int unused; } *HFONT;