strtof is not defined anymore in std=c++11

Corinna Vinschen vinschen@redhat.com
Thu Apr 11 10:24:00 GMT 2013


Hi Jon,

On Apr  9 15:18, Jon TURNEY wrote:
> $ g++ c99-stdlib-test.cpp -std=c++03 -Werror=implicit-function-declaration
> c99-stdlib-test.cpp: In function ‘int main()’:
> c99-stdlib-test.cpp:5:27: error: ‘strtoll’ was not declared in this scope
>    strtoll("1234", NULL , 0);
>                            ^
> c99-stdlib-test.cpp:6:27: error: ‘strtoull’ was not declared in this scope
>    strtoull("1234", NULL, 0);
>                            ^
> c99-stdlib-test.cpp:7:22: error: ‘strtof’ was not declared in this scope
>    strtof("1234", NULL);
>                       ^
> 
> $ g++ c99-stdlib-test.cpp -std=c++11 -Werror=implicit-function-declaration

Unfortunately, compilation fails when building a plain-C application
since __cplusplus is undefined in that case.  I checked in a patched
patch which also checks if __cplusplus is defined.

> newlib/ChangeLog:
> 
> 2013-04-09  Jon TURNEY  <...>
> 
> 	* libc/include/stdlib.h (strtof, strtoll, strtoull, strtold): Also
> 	prototype if C++11 or later
> 

Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat



More information about the Newlib mailing list