games-fps/worldofpadman: Fix build w/ clang

Closes: https://bugs.gentoo.org/739246
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
Andreas Sturmlechner
2025-08-13 19:55:20 +02:00
parent 853597a5f5
commit 4142c39268
2 changed files with 153 additions and 0 deletions

View File

@@ -0,0 +1,152 @@
From 675e7a641a67eae2a27e5754e876d08d395c5da8 Mon Sep 17 00:00:00 2001
From: Tim Angus <tim@ngus.net>
Date: Fri, 21 Oct 2011 22:48:53 +0000
Subject: [PATCH] * clang support
---
Makefile | 2 +-
code/asm/snapvector.c | 6 +++---
code/botlib/be_ai_chat.c | 2 +-
code/qcommon/common.c | 3 +++
code/qcommon/q_platform.h | 5 +++++
code/qcommon/unzip.c | 2 +-
code/renderer/tr_model_iqm.c | 9 +++------
code/renderer/tr_scene.c | 2 +-
9 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/Makefile b/Makefile
index 3bec57714..d0d3ba939 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 \
- -pipe -DUSE_ICON
+ -Wno-self-assign -pipe -DUSE_ICON
CLIENT_CFLAGS += $(SDL_CFLAGS)
OPTIMIZEVM = -O3 -funroll-loops -fomit-frame-pointer
diff --git a/code/asm/snapvector.c b/code/asm/snapvector.c
index a70a1069c..2ba248dfe 100644
--- a/code/asm/snapvector.c
+++ b/code/asm/snapvector.c
@@ -55,9 +55,9 @@ void qsnapvectorsse(vec3_t vec)
#define QROUNDX87(src) \
"flds " src "\n" \
- "fistp " src "\n" \
- "fild " src "\n" \
- "fstp " src "\n"
+ "fistpl " src "\n" \
+ "fildl " src "\n" \
+ "fstpl " src "\n"
void qsnapvectorx87(vec3_t vec)
{
diff --git a/code/botlib/be_ai_chat.c b/code/botlib/be_ai_chat.c
index 10950e9d8..cc489d557 100644
--- a/code/botlib/be_ai_chat.c
+++ b/code/botlib/be_ai_chat.c
@@ -1173,7 +1173,7 @@ bot_matchpiece_t *BotLoadMatchPieces(source_t *source, char *endtoken)
{
if (token.type == TT_NUMBER && (token.subtype & TT_INTEGER))
{
- if (token.intvalue < 0 || token.intvalue >= MAX_MATCHVARIABLES)
+ if (token.intvalue >= MAX_MATCHVARIABLES)
{
SourceError(source, "can't have more than %d match variables\n", MAX_MATCHVARIABLES);
FreeSource(source);
diff --git a/code/qcommon/common.c b/code/qcommon/common.c
index 2e39731c0..4f9abfcac 100644
--- a/code/qcommon/common.c
+++ b/code/qcommon/common.c
@@ -2329,7 +2329,10 @@ 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
}
/*
diff --git a/code/qcommon/q_platform.h b/code/qcommon/q_platform.h
index 8bc2984ca..f2baf1c75 100644
--- a/code/qcommon/q_platform.h
+++ b/code/qcommon/q_platform.h
@@ -179,7 +179,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define OS_STRING "kFreeBSD"
#endif
+#ifdef __clang__
+#define ID_INLINE static inline
+#else
#define ID_INLINE inline
+#endif
+
#define PATH_SEP '/'
#if defined __i386__
diff --git a/code/qcommon/unzip.c b/code/qcommon/unzip.c
index b307e98d4..128502ce0 100644
--- a/code/qcommon/unzip.c
+++ b/code/qcommon/unzip.c
@@ -1250,7 +1250,7 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
return UNZ_PARAMERROR;
- if ((pfile_in_zip_read_info->read_buffer == NULL))
+ if (pfile_in_zip_read_info->read_buffer == NULL)
return UNZ_END_OF_LIST_OF_FILE;
if (len==0)
return 0;
diff --git a/code/renderer/tr_model_iqm.c b/code/renderer/tr_model_iqm.c
index cad3aa6fd..98517d559 100644
--- a/code/renderer/tr_model_iqm.c
+++ b/code/renderer/tr_model_iqm.c
@@ -284,9 +284,9 @@ qboolean R_LoadIQM( model_t *mod, void *buffer, int filesize, const char *mod_na
LL( triangle->vertex[1] );
LL( triangle->vertex[2] );
- if( triangle->vertex[0] < 0 || triangle->vertex[0] > header->num_vertexes ||
- triangle->vertex[1] < 0 || triangle->vertex[1] > header->num_vertexes ||
- triangle->vertex[2] < 0 || triangle->vertex[2] > header->num_vertexes ) {
+ if( triangle->vertex[0] > header->num_vertexes ||
+ triangle->vertex[1] > header->num_vertexes ||
+ triangle->vertex[2] > header->num_vertexes ) {
return qfalse;
}
}
@@ -323,9 +323,7 @@ qboolean R_LoadIQM( model_t *mod, void *buffer, int filesize, const char *mod_na
mesh->first_vertex + mesh->num_vertexes > header->num_vertexes ||
mesh->first_triangle >= header->num_triangles ||
mesh->first_triangle + mesh->num_triangles > header->num_triangles ||
- mesh->name < 0 ||
mesh->name >= header->num_text ||
- mesh->material < 0 ||
mesh->material >= header->num_text ) {
return qfalse;
}
@@ -354,7 +352,6 @@ qboolean R_LoadIQM( model_t *mod, void *buffer, int filesize, const char *mod_na
if( joint->parent < -1 ||
joint->parent >= (int)header->num_joints ||
- joint->name < 0 ||
joint->name >= (int)header->num_text ) {
return qfalse;
}
diff --git a/code/renderer/tr_scene.c b/code/renderer/tr_scene.c
index 34e4141d3..94910d611 100644
--- a/code/renderer/tr_scene.c
+++ b/code/renderer/tr_scene.c
@@ -219,7 +219,7 @@ void RE_AddRefEntityToScene( const refEntity_t *ent ) {
}
return;
}
- if ( ent->reType < 0 || ent->reType >= RT_MAX_REF_ENTITY_TYPE ) {
+ if ( (int)ent->reType < 0 || ent->reType >= RT_MAX_REF_ENTITY_TYPE ) {
ri.Error( ERR_DROP, "RE_AddRefEntityToScene: bad reType %i", ent->reType );
}

View File

@@ -43,6 +43,7 @@ DOCS=( id-readme.txt IOQ3-README voip-readme.txt ../XTRAS/{changelog.txt,sounds_
PATCHES=(
"${FILESDIR}"/${P}-gentoo.patch
"${WORKDIR}"/${P}-bison-3.patch # bug 921029, in 1.6.1
"${FILESDIR}"/${P}-clang.patch # bug 944329, in 1.6.0
"${FILESDIR}"/${P}-c23.patch # bug 944329, git main
)