The following build error was observed when compiling with Clang:
In file included from Source/appfat.cpp:1:
In file included from ./Source/diablo.h:5:
In file included from ./Source/../types.h:52:
In file included from ./SourceS/miniwin.h:19:
In file included from /usr/lib/clang/8.0.1/include/x86intrin.h:29:
In file included from /usr/lib/clang/8.0.1/include/immintrin.h:28:
/usr/lib/clang/8.0.1/include/mmintrin.h:81:40: error: cannot initialize a parameter of type
'__attribute__((__vector_size__(2 * sizeof(int)))) int' (vector of 2 'int' values) with an rvalue of type
'__v2si' (aka 'int')
return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
^~~~~~~~~~~
Clang version:
$ clang -v
clang version 8.0.1 (tags/RELEASE_801/final)
First I tried to replace the x86intrin.h include with:
static inline unsigned int _rotl(unsigned int value, int shift)
{
return (value << shift) | (value >> (32 - shift));
}
static inline unsigned int _rotr(unsigned int value, int shift)
{
return (value >> shift) | (value << (32 - shift));
}
But that resulted in an error stating that _rotl and _rotr were
predeclared in Clang:
./SourceS/miniwin.h:20:28: error: definition of builtin function '_rotl'
static inline unsigned int _rotl(unsigned int value, int shift)
Thus, we simply declare but don't define these functions when
using Clang.
Prior to this commit, several keyboard keys would
not be translated, as detailed by the following
debug message:
DUMMY: translate_sdl_key : unknown key: name== sym=0x3D scan=46 mod=0x0
With this commit, all keys on regular US keyboards
should be translated correctly.
- Internal version is now set correctly
- Much better error handeling for SDL
- mpq files must now be in the same folder as the exec
- Window name is now "DIABLO" like the original