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)