Fixed bug #537
Description From esigra 2008-01-07 16:20:21 (-) [reply] I try to get a clean compile for a project using SDL. But I get warnings from SDL headers when I use -Wold-style-cast. This is especially bad because I plan to build the software with -Werror=old-style-cast when we have switched over to GCC 4.2, which has that option. But this problem can be fixed in the SDL headers. I checked out the SVN version and made some patches. See the attached patch. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403532
This commit is contained in:
parent
b9924167f7
commit
d2e9f851e1
2 changed files with 18 additions and 8 deletions
|
@ -174,9 +174,9 @@ SDL_Swap64(Uint64 x)
|
||||||
Uint32 hi, lo;
|
Uint32 hi, lo;
|
||||||
|
|
||||||
/* Separate into high and low 32-bit values and swap them */
|
/* Separate into high and low 32-bit values and swap them */
|
||||||
lo = (Uint32) (x & 0xFFFFFFFF);
|
lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF);
|
||||||
x >>= 32;
|
x >>= 32;
|
||||||
hi = (Uint32) (x & 0xFFFFFFFF);
|
hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF);
|
||||||
x = SDL_Swap32(lo);
|
x = SDL_Swap32(lo);
|
||||||
x <<= 32;
|
x <<= 32;
|
||||||
x |= SDL_Swap32(hi);
|
x |= SDL_Swap32(hi);
|
||||||
|
|
|
@ -83,6 +83,16 @@
|
||||||
#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0]))
|
#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0]))
|
||||||
#define SDL_TABLESIZE(table) SDL_arraysize(table)
|
#define SDL_TABLESIZE(table) SDL_arraysize(table)
|
||||||
|
|
||||||
|
/* Use proper C++ casts when compiled as C++ to be compatible with the option
|
||||||
|
-Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above. */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression)
|
||||||
|
#define SDL_static_cast(type, expression) static_cast<type>(expression)
|
||||||
|
#else
|
||||||
|
#define SDL_reinterpret_cast(type, expression) ((type)(expression))
|
||||||
|
#define SDL_static_cast(type, expression) ((type)(expression))
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Basic data types */
|
/* Basic data types */
|
||||||
typedef enum SDL_bool
|
typedef enum SDL_bool
|
||||||
{
|
{
|
||||||
|
@ -298,7 +308,7 @@ do { \
|
||||||
"cld\n\t" \
|
"cld\n\t" \
|
||||||
"rep ; stosl\n\t" \
|
"rep ; stosl\n\t" \
|
||||||
: "=&D" (u0), "=&a" (u1), "=&c" (u2) \
|
: "=&D" (u0), "=&a" (u1), "=&c" (u2) \
|
||||||
: "0" (dst), "1" (val), "2" ((Uint32)(len)) \
|
: "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, len)) \
|
||||||
: "memory" ); \
|
: "memory" ); \
|
||||||
} while(0)
|
} while(0)
|
||||||
#endif
|
#endif
|
||||||
|
@ -307,7 +317,7 @@ do { \
|
||||||
do { \
|
do { \
|
||||||
unsigned _count = (len); \
|
unsigned _count = (len); \
|
||||||
unsigned _n = (_count + 3) / 4; \
|
unsigned _n = (_count + 3) / 4; \
|
||||||
Uint32 *_p = (Uint32 *)(dst); \
|
Uint32 *_p = SDL_static_cast(Uint32 *, dst); \
|
||||||
Uint32 _val = (val); \
|
Uint32 _val = (val); \
|
||||||
switch (_count % 4) { \
|
switch (_count % 4) { \
|
||||||
case 0: do { *_p++ = _val; \
|
case 0: do { *_p++ = _val; \
|
||||||
|
@ -337,7 +347,7 @@ do { \
|
||||||
"movsb\n" \
|
"movsb\n" \
|
||||||
"2:" \
|
"2:" \
|
||||||
: "=&c" (u0), "=&D" (u1), "=&S" (u2) \
|
: "=&c" (u0), "=&D" (u1), "=&S" (u2) \
|
||||||
: "0" ((unsigned)(len)/4), "q" (len), "1" (dst),"2" (src) \
|
: "0" (SDL_static_cast(unsigned, len)/4), "q" (len), "1" (dst),"2" (src) \
|
||||||
: "memory" ); \
|
: "memory" ); \
|
||||||
} while(0)
|
} while(0)
|
||||||
#endif
|
#endif
|
||||||
|
@ -363,7 +373,7 @@ do { \
|
||||||
"cld\n\t" \
|
"cld\n\t" \
|
||||||
"rep ; movsl" \
|
"rep ; movsl" \
|
||||||
: "=&c" (ecx), "=&D" (edi), "=&S" (esi) \
|
: "=&c" (ecx), "=&D" (edi), "=&S" (esi) \
|
||||||
: "0" ((unsigned)(len)), "1" (dst), "2" (src) \
|
: "0" (SDL_static_cast(unsigned, len)), "1" (dst), "2" (src) \
|
||||||
: "memory" ); \
|
: "memory" ); \
|
||||||
} while(0)
|
} while(0)
|
||||||
#endif
|
#endif
|
||||||
|
@ -375,8 +385,8 @@ do { \
|
||||||
#define SDL_revcpy(dst, src, len) \
|
#define SDL_revcpy(dst, src, len) \
|
||||||
do { \
|
do { \
|
||||||
int u0, u1, u2; \
|
int u0, u1, u2; \
|
||||||
char *dstp = (char *)(dst); \
|
char *dstp = SDL_static_cast(char *, dst); \
|
||||||
char *srcp = (char *)(src); \
|
char *srcp = SDL_static_cast(char *, src); \
|
||||||
int n = (len); \
|
int n = (len); \
|
||||||
if ( n >= 4 ) { \
|
if ( n >= 4 ) { \
|
||||||
__asm__ __volatile__ ( \
|
__asm__ __volatile__ ( \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue