shithub: riscv

Download patch

ref: 2d59d75e3a4faa51bfc146f70aea7734cd8bb9ef
parent: 9ea93a5fd347a04ed409c46410cd5ead033c0695
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Jul 19 10:14:14 EDT 2020

stdio: fix warnings, make code more standard

Masking with _IO_CHMASK after the assignment causes a warning.
We're better off masking before, but casting the assignment to
prevent sign extension.

--- a/sys/include/ape/stdio.h
+++ b/sys/include/ape/stdio.h
@@ -106,7 +106,7 @@
 #define	getchar()	getc(stdin)
 extern char *gets(char *);
 extern int putc(int, FILE *);
-#define	putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):((*(f)->wp++=(c))&_IO_CHMASK))
+#define	putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):(*(unsigned char*)(f)->wp++=(c)&_IO_CHMASK))
 extern int _IO_putc(int, FILE *);
 extern int putchar(int);
 #define	putchar(c)	putc(c, stdout)
--- a/sys/include/stdio.h
+++ b/sys/include/stdio.h
@@ -92,7 +92,7 @@
 #define	getchar()	getc(stdin)
 char *gets(char *);
 int putc(int, FILE *);
-#define	putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):((*(f)->wp++=(c))&_IO_CHMASK))
+#define	putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):(*(unsigned char*)(f)->wp++=(c)&_IO_CHMASK))
 int _IO_putc(int, FILE *);
 int putchar(int);
 #define	putchar(c)	putc(c, stdout)