https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69626
Bug ID: 69626 Summary: [6 Regression] std::strtoll no longer defined in c++98 mode Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- for __cplusplus < 201103L bits/c++config.h does: # ifndef _GLIBCXX_USE_C99_STDLIB # define _GLIBCXX_USE_C99_STDLIB _GLIBCXX98_USE_C99_STDLIB # endif but acinclude.m4 never defines _GLIBCXX98_USE_C99_STDLIB so the C99 stdlib.h functions are no longer defined for C++98. PR 69350 says we shouldn't be defining those non-C++98 functions anyway, but removing them now was not intentional (and we probably don't want to remove them for -std=gnu++98 anyway). #include <cstdlib> int main() { &std::strtoll; } $ g++ -std=c++98 ll.cc ll.cc: In function ‘int main()’: ll.cc:5:4: error: ‘strtoll’ is not a member of ‘std’ &std::strtoll; ^~~ ll.cc:5:4: note: suggested alternative: In file included from /home/jwakely/gcc/6/include/c++/6.0.0/cstdlib:75:0, from ll.cc:1: /usr/include/stdlib.h:209:22: note: ‘strtoll’ extern long long int strtoll (const char *__restrict __nptr, ^~~~~~~