https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67739
--- Comment #3 from Milan Durovic <milan.durovic at ali dot com.au> --- I think a warning is the right answer. You can't expect people to be aware of all built-in functions. I wasn't aware that there was such a function called 'sincos'. And even more importantly, the name clash is not really obvious for the simple reason that the function that the compiler invokes is not even explicitly exposed, ie. it doesn't appear in the source code. And these change: in one version, compiler invokes sincosf and in another, sincos. So code that compiles and works fine with one compiler version would fail with another compiler version. Warning is the minimum that should happen, although I think if the compiler wants to invoke a particular, hidden function, and its name clashes with a program variable, then it's something compiler should automatically resolve.