https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71675
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |documentation Status|UNCONFIRMED |NEW Last reconfirmed| |2016-06-28 CC| |msebor at gcc dot gnu.org Ever confirmed|0 |1 Known to fail| |4.9.3, 5.3.0, 6.1.0, 7.0 --- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed the same error with all versions of GCC that support the built-in and class enums. It seems as though the built-in's return type is actually /type/ (referring to the type pointed to by the first argument, the same as in __atomic_load_n and __atomic_exchange_n) rather than bool, and the function returns the original value. It feels like a documentation bug.