https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113772
--- Comment #7 from Iain Buclaw <ibuclaw at gdcproject dot org> --- (In reply to Iain Sandoe from comment #6) > (In reply to Iain Buclaw from comment #4) > > Looking at gcc/builtins.cc, I have a bad feeling that the only compile-time > > > > /* If it isn't always lock free, don't generate a result. */ > > if (fold_builtin_atomic_always_lock_free (arg0, arg1) == > > boolean_true_node) > > return boolean_true_node; > > > ^ but this does fall back to a libcall to the relevant libatomic function, > (you can verify that with a simple C routine).. and given that both darwin > and linux powerpc have libatomic impls. this still should not give an > "unimplemented" response. The diagnostic is misleading. I gather it assumes "unimplemented" because there is no function body for CTFE to evaluate after the attempt to expand via gcc builtins.cc failed.