py/misc: Fix msvc compilation with compressed error messages.

pull/8926/head
stijn 2022-06-23 16:02:59 +02:00 zatwierdzone przez Damien George
rodzic c4adeb2e08
commit 1f16d682da
1 zmienionych plików z 4 dodań i 3 usunięć

Wyświetl plik

@ -293,15 +293,16 @@ typedef union _mp_float_union_t {
// Force usage of the MP_ERROR_TEXT macro by requiring an opaque type.
typedef struct {
#ifdef __clang__
// Fix "error: empty struct has size 0 in C, size 1 in C++".
#if defined(__clang__) || defined(_MSC_VER)
// Fix "error: empty struct has size 0 in C, size 1 in C++", and the msvc counterpart
// "C requires that a struct or union have at least one member"
char dummy;
#endif
} *mp_rom_error_text_t;
#include <string.h>
inline __attribute__((always_inline)) const char *MP_COMPRESSED_ROM_TEXT(const char *msg) {
inline MP_ALWAYSINLINE const char *MP_COMPRESSED_ROM_TEXT(const char *msg) {
// "genhdr/compressed.data.h" contains an invocation of the MP_MATCH_COMPRESSED macro for each compressed string.
// The giant if(strcmp) tree is optimized by the compiler, which turns this into a direct return of the compressed data.
#define MP_MATCH_COMPRESSED(a, b) if (strcmp(msg, a) == 0) { return b; } else