https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87345
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >void *strlwr(char *str) > { ... > //return NULL; > } This is the issue and not anything else. In C++ (unlike C), falling through to return where there is a return type is undefined code at that point. (In C, it is undefined if the return value was used).