https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70490
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |msebor at gcc dot gnu.org
--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
I wonder if this implies there's a problem with the implementation of C11
atomic_load() or with the resolution of DR 459:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/summary.htm#dr_459
$ cat x.c && gcc -Wall -Wextra -Wpedantic -latomic -std=gnu11 x.c && ./a.out
#include <sys/mman.h>
#include <stdatomic.h>
__int128 test(void)
{
const void *ptr = mmap(0, 4096, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0);
const _Atomic __int128 *p_v = (const _Atomic __int128 *)ptr;
return atomic_load (p_v);
}
int main () {
test ();
}
x.c:4:1: warning: ISO C does not support ‘__int128’ types [-Wpedantic]
__int128 test(void)
^
x.c: In function ‘test’:
x.c:7:19: warning: ISO C does not support ‘__int128’ types [-Wpedantic]
const _Atomic __int128 *p_v = (const _Atomic __int128 *)ptr;
^
x.c:7:50: warning: ISO C does not support ‘__int128’ types [-Wpedantic]
const _Atomic __int128 *p_v = (const _Atomic __int128 *)ptr;
^
Segmentation fault (core dumped)