mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-10 18:11:04 +09:00
![]() Change the mono build to require C11 (with gnu extensions on gcc/clang platforms). * Change `g_static_assert` to be `_Static_assert` or `static_assert` as apropriate. * Change `_DN_STATIC_ASSERT` to be `static_assert` * Add static asserts in `jiterp.c` when it casts between `T*` and `atomic_T*` * Add C11 guidance to the mono coding guide doc Contributes to #90404 --- * Bump mono to -std=gnu99; use static_assert * don't fall back to runtime checks for g_static_assert * fix static assert that wasn't a constant expression * use static_assert in shared containers * bump C standard in offsets-tool.py * use _Static_assert before C23 Dont' include assert.h in glib.h because some of our older 3P code includes assert.h on its own and there are conflicts * use CMAKE_C_STANDARD and related properties * jiterp: static_assert that atomic ops are (less likely) to go wrong Not every C implementation guarantees that atomic operations on arbitrary types are lock free. So for example, casting between atomic_ushort* and uint16_t* might not actually be ok to do. We can't assert that they're inter-castable, but at least assert that they're the same size and that atomic_ushort is always lock-free. There might still be restrictions (for example atomic_ushort might have to be aligned differently) but this should at least catch obvious data corruption. * Add C11 guidance to the Mono coding guide * jiterp: long is 32-bits on wasm; use llong |
||
---|---|---|
.. | ||
api-guidelines | ||
adding-api-guidelines.md | ||
breaking-change-definitions.md | ||
breaking-change-rules.md | ||
breaking-changes.md | ||
clr-code-guide.md | ||
clr-jit-coding-conventions.md | ||
code-formatting-tools.md | ||
coding-style.md | ||
cross-platform-guidelines.md | ||
cross-platform-performance-and-eventing.md | ||
EventLogging.md | ||
framework-design-guidelines-digest.md | ||
interop-guidelines.md | ||
libraries-packaging.md | ||
mono-code-guide.md | ||
performance-guidelines.md | ||
project-guidelines.md | ||
updating-ref-source.md | ||
vectorization-guidelines.md | ||
vs-cpp-formatting.png | ||
vs-csharp-formatting.png |