diff --git a/Makefile b/Makefile index d0d3ba93..99781045 100644 --- a/Makefile +++ b/Makefile @@ -276,7 +276,7 @@ ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu")) endif BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \ - -Wno-self-assign -pipe -DUSE_ICON + -pipe -DUSE_ICON CLIENT_CFLAGS += $(SDL_CFLAGS) OPTIMIZEVM = -O3 -funroll-loops -fomit-frame-pointer @@ -902,6 +902,10 @@ else RENDERER_LIBS += -ljpeg endif +ifeq ("$(CC)", $(findstring "$(CC)", "clang" "clang++")) + BASE_CFLAGS += -Qunused-arguments +endif + ifdef DEFAULT_BASEDIR BASE_CFLAGS += -DDEFAULT_BASEDIR=\\\"$(DEFAULT_BASEDIR)\\\" endif diff --git a/code/cgame/cg_view.c b/code/cgame/cg_view.c index 953093bc..f31c479c 100644 --- a/code/cgame/cg_view.c +++ b/code/cgame/cg_view.c @@ -506,9 +506,7 @@ static int CG_CalcFov( void ) { } } else { f = ( cg.time - cg.zoomTime ) / (float)ZOOM_TIME; - if ( f > 1.0 ) { - fov_x = fov_x; - } else { + if ( f <= 1.0 ) { fov_x = zoomFov + f * ( fov_x - zoomFov ); } } diff --git a/code/client/libmumblelink.c b/code/client/libmumblelink.c index 40d1eb1b..c6d6acb0 100644 --- a/code/client/libmumblelink.c +++ b/code/client/libmumblelink.c @@ -115,7 +115,7 @@ int mumble_link(const char* name) close(shmfd); #endif memset(lm, 0, sizeof(LinkedMem)); - mbstowcs(lm->name, name, sizeof(lm->name)); + mbstowcs(lm->name, name, sizeof(lm->name) / sizeof(wchar_t)); return 0; } diff --git a/code/qcommon/common.c b/code/qcommon/common.c index 4f9abfca..dcc31fd8 100644 --- a/code/qcommon/common.c +++ b/code/qcommon/common.c @@ -2329,10 +2329,7 @@ A way to force a bus error for development reasons ================= */ static void Com_Crash_f( void ) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnull-dereference" - * ( int * ) 0 = 0x12345678; -#pragma clang diagnostic pop + * ( volatile int * ) 0 = 0x12345678; } /* diff --git a/code/qcommon/q_shared.c b/code/qcommon/q_shared.c index 213f1c89..31d87f65 100644 --- a/code/qcommon/q_shared.c +++ b/code/qcommon/q_shared.c @@ -706,11 +706,12 @@ int Q_isalpha( int c ) qboolean Q_isanumber( const char *s ) { char *p; + double UNUSED_VAR d; if( *s == '\0' ) return qfalse; - strtod( s, &p ); + d = strtod( s, &p ); return *p == '\0'; } diff --git a/code/qcommon/q_shared.h b/code/qcommon/q_shared.h index b925edd4..86ddb8ea 100644 --- a/code/qcommon/q_shared.h +++ b/code/qcommon/q_shared.h @@ -97,6 +97,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #endif #endif +#ifdef __GNUC__ +#define UNUSED_VAR __attribute__((unused)) +#else +#define UNUSED_VAR +#endif + #if (defined _MSC_VER) #define Q_EXPORT __declspec(dllexport) #elif (defined __SUNPRO_C) diff --git a/code/renderer/tr_bsp.c b/code/renderer/tr_bsp.c index d4168bed..17afd7ec 100644 --- a/code/renderer/tr_bsp.c +++ b/code/renderer/tr_bsp.c @@ -272,11 +272,11 @@ static shader_t *ShaderForShaderNum( int shaderNum, int lightmapNum ) { shader_t *shader; dshader_t *dsh; - shaderNum = LittleLong( shaderNum ); - if ( shaderNum < 0 || shaderNum >= s_worldData.numShaders ) { - ri.Error( ERR_DROP, "ShaderForShaderNum: bad num %i", shaderNum ); + int _shaderNum = LittleLong( shaderNum ); + if ( _shaderNum < 0 || _shaderNum >= s_worldData.numShaders ) { + ri.Error( ERR_DROP, "ShaderForShaderNum: bad num %i", _shaderNum ); } - dsh = &s_worldData.shaders[ shaderNum ]; + dsh = &s_worldData.shaders[ _shaderNum ]; if ( r_vertexLight->integer || glConfig.hardwareType == GLHW_PERMEDIA2 ) { lightmapNum = LIGHTMAP_BY_VERTEX; diff --git a/code/sys/con_tty.c b/code/sys/con_tty.c index 6e5e966c..5feb70b2 100644 --- a/code/sys/con_tty.c +++ b/code/sys/con_tty.c @@ -88,13 +88,14 @@ send "\b \b" static void CON_Back( void ) { char key; + size_t UNUSED_VAR size; key = '\b'; - write(STDOUT_FILENO, &key, 1); + size = write(STDOUT_FILENO, &key, 1); key = ' '; - write(STDOUT_FILENO, &key, 1); + size = write(STDOUT_FILENO, &key, 1); key = '\b'; - write(STDOUT_FILENO, &key, 1); + size = write(STDOUT_FILENO, &key, 1); } /* @@ -145,12 +146,13 @@ static void CON_Show( void ) ttycon_hide--; if (ttycon_hide == 0) { - write(STDOUT_FILENO, "]", 1); + size_t UNUSED_VAR size; + size = write(STDOUT_FILENO, "]", 1); if (TTY_con.cursor) { for (i=0; i