https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119006
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Your source does not work either: FixedString(const char* str_) { *this = str_; } Is an infinite loop. It should be: FixedString(const char* str_) { __builtin_strcpy (this->_str, str_); }