[PATCH] libc: fix fropen/fwopen compile warnings

Alexey Lapshin alexey.lapshin@espressif.com
Wed Dec 7 10:59:23 GMT 2022


This patch fixes warnings that appears when compiling:


#define fwopen(__cookie,__fn) funopen(__cookie, (int (*)())0, __fn,
(fpos_t (*)())0, (int (*)())0)
Expands to:

funopen(__null, (int (*)())0, &app_printf, (fpos_t (*)())0, (int
(*)())0)
argument of type "int (*)()" is incompatible with parameter of type
"int (*)(void *__cookie, char *__buf, int __n)"C/C++(167)
invalid conversion from 'fpos_t (*)()' {aka 'long int (*)()'} to
'fpos_t (*)(void*, fpos_t, int)' {aka 'long int (*)(void*,

Discussion is here:
https://github.com/espressif/arduino-esp32/issues/7407


---
 newlib/libc/include/stdio.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h
index ab18806e3..08c1ffe45 100644
--- a/newlib/libc/include/stdio.h
+++ b/newlib/libc/include/stdio.h
@@ -614,10 +614,8 @@ FILE	*_funopen_r (struct _reent *, const
void *__cookie,
 		int (*__closefn)(void *__cookie));
 # endif /* !__LARGE64_FILES */
 
-# define	fropen(__cookie, __fn) funopen(__cookie, __fn, (int
(*)())0, \
-					       (fpos_t (*)())0, (int
(*)())0)
-# define	fwopen(__cookie, __fn) funopen(__cookie, (int (*)())0,
__fn, \
-					       (fpos_t (*)())0, (int
(*)())0)
+# define	fropen(__cookie, __fn) funopen(__cookie, __fn, NULL,
NULL, NULL)
+# define	fwopen(__cookie, __fn) funopen(__cookie, NULL, __fn,
NULL, NULL)
 #endif /* __BSD_VISIBLE */
 
 #if __GNU_VISIBLE
-- 
2.34.1




More information about the Newlib mailing list