https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118033
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- You could use the assume attribute to avoid the side effects ... #if defined(NDEBUG) #if __has_attribute(assume) #define assert(a) [[assume(a)]] #endif #endif