Mike Stump writes: > On Jul 25, 2016, at 5:00 AM, Senthil Kumar Selvaraj > <senthil_kumar.selva...@atmel.com> wrote: >> >> The below patch fixes tests that fail for the avr target, because they >> assume ints are atleast 32 bits wide and pointers and longs have the >> same size. >> >> I've required int32plus support for one test, and for the other two, >> I've introduced a cast to intptr_t to avoid the pointer <-> int size >> difference warning. >> >> Reg tested on avr and x86_64 with no regressions. Committed as >> obvious. > > Can you use __INTPTR_TYPE__ instead? This way, you don't need to add any > include, and the test case will work in cross environments without any libc, > which is at times handy. Thanks. > > See grep INTPTR gcc/gcc/testsuite/gcc.dg/*.c for how people use it, and for > the unsigned version. > >> 2016-07-25 Senthil Kumar Selvaraj <senthil_kumar.selva...@atmel.com> >> >> * gcc.dg/torture/pr69352.c (foo): Cast to intptr_t instead of long. >> * gcc.dg/torture/pr69771.c: Require int32plus. >> * gcc.dg/torture/pr71866.c (inb): Add cast to intptr_t.
I'll keep that in mind, thanks. Is the below patch ok? I used uintptr_t in the second test as the source type is unsigned long. Regards Senthil Index: pr69352.c =================================================================== --- pr69352.c (revision 238743) +++ pr69352.c (working copy) @@ -1,6 +1,6 @@ /* { dg-do compile } */ -#include <stdint.h> +__extension__ typedef __INTPTR_TYPE__ intptr_t; int a[10][14], b, c, d, e, f, g, h, i; void bar (void); Index: pr71866.c =================================================================== --- pr71866.c (revision 238743) +++ pr71866.c (working copy) @@ -1,7 +1,8 @@ /* { dg-do compile } */ /* { dg-additional-options "-ftree-pre -fcode-hoisting" } */ -#include <stdint.h> +__extension__ typedef __UINTPTR_TYPE__ uintptr_t; + typedef unsigned char u8; extern unsigned long pci_io_base; u8 in_8 (const volatile void *); @@ -26,7 +27,7 @@ static inline u8 inb (unsigned long port) { - return readb((volatile void *)(intptr_t)pci_io_base + port); + return readb((volatile void *)(uintptr_t)pci_io_base + port); } static inline void outb (u8 val, unsigned long port)