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:
@@ -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, ...);
|
||||
|
||||
Reference in New Issue
Block a user