http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54005
--- Comment #10 from Hans-Peter Nilsson <hp at gcc dot gnu.org> 2012-08-16 22:23:32 UTC --- (In reply to comment #9) > Actually, that's the way __atomic_is_lock_free() has always been implemented > (even in 4.7). There's miscommunication here. The point of this PR is, the code for is_lock_free must be per-type, agreed? It used __atomic_is_lock_free() with a non-null pointer, hence it was per-object, a bug, agreed? (Mr. Crowl asserts on IRC what can be understood from the referenced URL; that the function started as per-object but semantics later changed to be per-type.) The committed changes were to make it use __atomic_always_lock_free() so per-type. IIUC you mean it should instead use __atomic_is_lock_free() with the object pointer changed to NULL. That might be: whether that is preferred to r190216 I can't say, in particular with a pending rewrite.