micro-ecc
micro-ecc copied to clipboard
GCC + `-Wpedantic` throws warning about `__int128`
If the platform supports __int128, GCC throws the following warning if the -Wpedantic flag is set.
types.h:100:18: warning: ISO C does not support ‘__int128’ types [-Wpedantic]
100 | typedef unsigned __int128 uECC_dword_t;
Here are three ways to avoid the GCC warning
- Use the
__attribute__((mode(TI)))(similar to mbedtls)
typedef unsigned int uECC_dword_t __attribute__((mode(TI)));
- Use
__extension__GCC Documentation
__extension__ typedef unsigned __int128 uECC_dword_t;
- Just ignore
-Wpedanticat this line
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"
typedef unsigned __int128 uECC_dword_t;
#pragma GCC diagnostic pop
Also hit this issue today:
└─▪ make
In file included from uECC_vli.h:7,
from uECC.c:4:
types.h:98:18: error: ISO C does not support ‘__int128’ types [-Werror=pedantic]
98 | typedef unsigned __int128 uECC_dword_t;
| ^~~~~~~~
cc1: all warnings being treated as errors
make: *** [makefile:129: uECC.o] Error 1
└─▪ cat /etc/issue
Ubuntu 22.04.4 LTS \n \l
┌─[±][master ?:3 ✗][micro-ecc]
└─▪ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.