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)

Reply via email to