Fix undefined behavior

Transmuting from an immutable to a mutable reference is undefined
behavior in Rust, with the exception of UnsafeCell which tells the
optimizer to not draw too many conclusions. Sadly UnsafeCell::get cannot
yet be used in statics (see https://github.com/rust-lang/rust/issues/51718),
so this works around that by making the statics into functions and
making C macros to call those.
This commit is contained in:
jD91mZM2
2018-06-22 21:00:52 +02:00
parent 3034114c14
commit ea24699798
4 changed files with 44 additions and 28 deletions
+3
View File
@@ -2,6 +2,9 @@
#define _BITS_STDIO_H
#define EOF (-1)
#define stdin __stdin()
#define stdout __stdout()
#define stderr __stderr()
int fprintf(FILE * stream, const char * fmt, ...);
int printf(const char * fmt, ...);