https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89722
--- Comment #4 from Xavier <chantry.xavier at gmail dot com> --- Arf I did not understand this was a const problem. Maybe the warning could be a bit clearer ? :) I confirm that it works fine with typeof(*(bits) + 0). This code is in a header shared between C and C++, and actually our codebase is mostly C, so for now it's probably not worth rewriting all our macros with a C++ version. Thanks for the explanation, and for the workaround !