https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83638
Bug ID: 83638 Summary: atomic_is_lock_free should return false on pa-risc Product: gcc Version: 7.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: mikulas at artax dot karlin.mff.cuni.cz Target Milestone: --- The pa-risc architecture doesn't have atomic instructions, all atomic writes or modifications require taking a lock. These locks are generated properly, however, the function atomic_is_lock_free incorrectly returns 1 for primitive data types. #include <stdio.h> #include <stdatomic.h> _Atomic int a1; _Atomic long long a2; _Atomic struct { int x; int y; int z; } a3; int main(void) { printf("%d\n", atomic_is_lock_free(&a1)); printf("%d\n", atomic_is_lock_free(&a2)); printf("%d\n", atomic_is_lock_free(&a3)); return 0; } When you run it, it prints 1 1 0