-
Notifications
You must be signed in to change notification settings - Fork 128
Open
Description
When compiling with SDL1 I get error here:
#elif defined(FASTFLOAT_32BIT) || (defined(_WIN64) && !defined(__clang__))
answer.low = _umul128(a, b, &answer.high); // _umul128 not available on ARM64
#elif defined(FASTFLOAT_64BIT) && defined(__SIZEOF_INT128__)Exact error:
libs/rapidyaml/c4/ext/fast_float_all.h: In function 'fast_float::value128 fast_float::full_multiplication(uint64_t, uint64_t)':
libs/rapidyaml/c4/ext/fast_float_all.h:420:31: error: invalid conversion from 'uint64_t*' {aka 'long unsigned int*'} to 'long long unsigned int*' [-fpermissive]
420 | answer.low = _umul128(a, b, &answer.high); // _umul128 not available on ARM64
| ^~~~~~~~~~~~
| |
| uint64_t* {aka long unsigned int*}
In file included from /usr/include/w32api/intrin.h:41,
from libs/rapidyaml/c4/ext/fast_float_all.h:175:
/usr/include/w32api/psdk_inc/intrin-impl.h:1027:85: note: initializing argument 3 of 'long long unsigned int _umul128(long long unsigned int, long long unsigned int, long long unsigned int*)'
1027 | unsigned __int64 _umul128(unsigned __int64 a, unsigned __int64 b, unsigned __int64 *hi)
| ~~~~~~~~~~~~~~~~~~^~
overall this can be easy reproduced by:
#include <SDL_opengl.h>
#include "rapidyaml/ryml.hpp"if I swap order then this magically work.
Overall this could be problem with SDL_opengl, but _umul128 is called by rapidyaml and probably should use types definition form same place where _umul128 is defined. Or at least add exception for cygwin same as was done for clang.
Adding #define __clang__ 1 aside form spam from warnings allow code to compile.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels