bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

manywarnings: -Walloc-size-larger-than & 32bit architectures


From: Pino Toscano
Subject: manywarnings: -Walloc-size-larger-than & 32bit architectures
Date: Mon, 31 Jul 2017 14:15:16 +0200

Hi,

when using the warnings module, after commit
5e22aee79f9d02ac37f40f1d18f5696114c3c3c9 also
-Walloc-size-larger-than=9223372036854775807 is added to the CFLAGS,
if supported (which seems the case with newer GCC versions).  However,
the value is too big for 32bit architectures, so this will "break" the
GCC checks.  Let's see the following example on a i686 version of
Fedora 26:

$ cat test.c 
#include <stdlib.h>
int main(void)
{
  char *foo = malloc(5);
  free(foo);
  return 0;
}
$ gcc -Walloc-size-larger-than=9223372036854775807 -o test test.c 
test.c: In function ‘main’:
test.c:4:9: warning: argument 1 value ‘5’ exceeds maximum object size -1 
[-Walloc-size-larger-than=]
   char *foo = malloc(5);
         ^~~
In file included from test.c:1:0:
/usr/include/stdlib.h:443:14: note: in a call to allocation function ‘malloc’ 
declared here
 extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
              ^~~~~~
$ gcc --version
gcc (GCC) 7.1.1 20170622 (Red Hat 7.1.1-3)
$ uname -a
Linux fedora 4.11.11-300.fc26.i686+PAE #1 SMP Mon Jul 17 16:53:51 UTC 2017 i686 
i686 i386 GNU/Linux

Using the PTRDIFF_MAX value on such architecture, i.e. 2147483647,
indeed makes the issue go away, and the GCC checks work again (that is,
not showing all the allocations as false positives).

Does anyone have an idea (or even a patch) to make gnulib pass the
right value to GCC?

Thanks,
-- 
Pino Toscano

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]