Очевидно, что GCC понимает, что strncat(_tempname, "/hellooXXXXXX", 13);
ничем не отличается от strcat(_tempname, "/hellooXXXXXX");
, и считает подозрительным, что вы используете первый вместо второго.
Если вы можете изменить код, используйте strcat
вместо этого (или даже лучше, перепишите вещь, чтобы использовать std::string
).
Если вы не можете изменить код, используйте флаг -Wno-stringop-overflow
, чтобы отключить предупреждение.