Message ID | 201506090058.t590wUgk007896@greed.delorie.com |
---|---|
State | New |
Headers | show |
On Mon, 8 Jun 2015, DJ Delorie wrote: > Also, I note that some tests check for __SIZE_TYPE__ as I do below, > and others use it unconditionally as a replacement for size_t. Is > there a convention? As far as I can tell, __SIZE_TYPE__ is always defined. The tests that check for it probably date from a time when it wasn't?
On 06/08/2015 06:58 PM, DJ Delorie wrote: > The testcase for pr 66345 assumes size_t is "unsigned long" instead of > using the real type, which causes failures on some 16-bit targets. > Ok? > > Also, I note that some tests check for __SIZE_TYPE__ as I do below, > and others use it unconditionally as a replacement for size_t. Is > there a convention? I doubt there's a well defined convention. Particularly for the torture tests, many of which are very very old. > > * gcc.dg/torture/pr66345.c: Fix assumption about size_t type. OK. jeff
> OK.
Thanks, committed.
Index: gcc.dg/torture/pr66345.c =================================================================== --- gcc.dg/torture/pr66345.c (revision 224260) +++ gcc.dg/torture/pr66345.c (working copy) @@ -1,9 +1,15 @@ /* { dg-do compile } */ -extern int snprintf (char *, unsigned long, const char *, ...); +#ifdef __SIZE_TYPE__ +typedef __SIZE_TYPE__ size_t; +#else +typedef unsigned int size_t; +#endif + +extern int snprintf (char *, size_t, const char *, ...); const char a[] = ""; int b; void get_bar () { snprintf (0, 0, "%s", &a[b]);