mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-06-02 17:41:10 +00:00
Do a pure/const/noreturn/format attribute pass.
I always wanted these, but as gcc now provides warnings for functions that could do with such attributes, finding all the functions is much easier.
This commit is contained in:
parent
05fd2d8cdd
commit
34bcf7faab
118 changed files with 332 additions and 314 deletions
|
@ -213,6 +213,10 @@ if test $CC_MAJ -gt 4 -o $CC_MAJ -eq 4 -a $CC_MIN -ge 5; then
|
||||||
fi
|
fi
|
||||||
QF_CC_OPTION(-Wtype-limits)
|
QF_CC_OPTION(-Wtype-limits)
|
||||||
QF_CC_OPTION_TEST([-fvisibility=hidden], [VISIBILITY=-fvisibility=hidden])
|
QF_CC_OPTION_TEST([-fvisibility=hidden], [VISIBILITY=-fvisibility=hidden])
|
||||||
|
QF_CC_OPTION(-Wsuggest-attribute=pure)
|
||||||
|
QF_CC_OPTION(-Wsuggest-attribute=const)
|
||||||
|
QF_CC_OPTION(-Wsuggest-attribute=noreturn)
|
||||||
|
QF_CC_OPTION(-Wsuggest-attribute=format)
|
||||||
|
|
||||||
dnl QuakeForge uses lots of BCPL-style (//) comments, which can cause problems
|
dnl QuakeForge uses lots of BCPL-style (//) comments, which can cause problems
|
||||||
dnl with many compilers that do not support the latest ISO standards. Well,
|
dnl with many compilers that do not support the latest ISO standards. Well,
|
||||||
|
|
|
@ -121,7 +121,7 @@ FL_Add (filter_t * filter)
|
||||||
filter_list = filter;
|
filter_list = filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
static filter_t *
|
static __attribute__((pure)) filter_t *
|
||||||
FL_Find (netadr_t adr)
|
FL_Find (netadr_t adr)
|
||||||
{
|
{
|
||||||
filter_t *filter;
|
filter_t *filter;
|
||||||
|
@ -209,7 +209,7 @@ SVL_Add (server_t *sv)
|
||||||
sv_list = sv;
|
sv_list = sv;
|
||||||
}
|
}
|
||||||
|
|
||||||
static server_t *
|
static __attribute__((pure)) server_t *
|
||||||
SVL_Find (netadr_t adr)
|
SVL_Find (netadr_t adr)
|
||||||
{
|
{
|
||||||
server_t *sv;
|
server_t *sv;
|
||||||
|
|
|
@ -37,7 +37,7 @@ void glsl_lightmap_init (void);
|
||||||
void glsl_R_BuildLightmaps (struct model_s **models, int num_models);
|
void glsl_R_BuildLightmaps (struct model_s **models, int num_models);
|
||||||
void glsl_R_CalcLightmaps (void);
|
void glsl_R_CalcLightmaps (void);
|
||||||
extern void (*glsl_R_BuildLightMap) (msurface_t *surf);
|
extern void (*glsl_R_BuildLightMap) (msurface_t *surf);
|
||||||
int glsl_R_LightmapTexture (void);
|
int glsl_R_LightmapTexture (void) __attribute__((pure));
|
||||||
void glsl_R_FlushLightmaps (void);
|
void glsl_R_FlushLightmaps (void);
|
||||||
|
|
||||||
#endif//__QF_GLSL_lightmap_h
|
#endif//__QF_GLSL_lightmap_h
|
||||||
|
|
|
@ -55,7 +55,7 @@ void GLSL_TextureInit (void);
|
||||||
scrap_t *GLSL_CreateScrap (int size, int format, int linear);
|
scrap_t *GLSL_CreateScrap (int size, int format, int linear);
|
||||||
void GLSL_DestroyScrap (scrap_t *scrap);
|
void GLSL_DestroyScrap (scrap_t *scrap);
|
||||||
void GLSL_ScrapClear (scrap_t *scrap);
|
void GLSL_ScrapClear (scrap_t *scrap);
|
||||||
int GLSL_ScrapTexture (scrap_t *scrap);
|
int GLSL_ScrapTexture (scrap_t *scrap) __attribute__((pure));
|
||||||
subpic_t *GLSL_ScrapSubpic (scrap_t *scrap, int width, int height); //XXX slow!
|
subpic_t *GLSL_ScrapSubpic (scrap_t *scrap, int width, int height); //XXX slow!
|
||||||
void GLSL_SubpicDelete (subpic_t *subpic); //XXX slow!
|
void GLSL_SubpicDelete (subpic_t *subpic); //XXX slow!
|
||||||
void GLSL_SubpicUpdate (subpic_t *subpic, byte *data, int batch);
|
void GLSL_SubpicUpdate (subpic_t *subpic, byte *data, int batch);
|
||||||
|
|
|
@ -60,14 +60,14 @@ int Cmd_AddCommand (const char *cmd_name, xcommand_t function, const char *desc
|
||||||
int Cmd_RemoveCommand (const char *cmd_name);
|
int Cmd_RemoveCommand (const char *cmd_name);
|
||||||
|
|
||||||
qboolean Cmd_Exists (const char *cmd_name);
|
qboolean Cmd_Exists (const char *cmd_name);
|
||||||
const char *Cmd_CompleteCommand (const char *partial);
|
const char *Cmd_CompleteCommand (const char *partial) __attribute__((pure));
|
||||||
int Cmd_CompleteCountPossible (const char *partial);
|
int Cmd_CompleteCountPossible (const char *partial) __attribute__((pure));
|
||||||
const char **Cmd_CompleteBuildList (const char *partial);
|
const char **Cmd_CompleteBuildList (const char *partial);
|
||||||
|
|
||||||
|
|
||||||
int Cmd_Argc (void);
|
int Cmd_Argc (void) __attribute__((pure));
|
||||||
const char *Cmd_Argv (int arg);
|
const char *Cmd_Argv (int arg) __attribute__((pure));
|
||||||
const char *Cmd_Args (int start);
|
const char *Cmd_Args (int start) __attribute__((pure));
|
||||||
struct cbuf_args_s;
|
struct cbuf_args_s;
|
||||||
int Cmd_Command (struct cbuf_args_s *args);
|
int Cmd_Command (struct cbuf_args_s *args);
|
||||||
int Cmd_ExecuteString (const char *text, cmd_source_t src);
|
int Cmd_ExecuteString (const char *text, cmd_source_t src);
|
||||||
|
|
|
@ -92,8 +92,8 @@ extern struct console_data_s con_data;
|
||||||
void Con_CheckResize (void);
|
void Con_CheckResize (void);
|
||||||
void Con_DrawConsole (void);
|
void Con_DrawConsole (void);
|
||||||
|
|
||||||
void Con_Printf (const char *fmt, ...);
|
void Con_Printf (const char *fmt, ...) __attribute__((format(printf, 1, 2)));
|
||||||
void Con_Print (const char *fmt, va_list args);
|
void Con_Print (const char *fmt, va_list args) __attribute__((format(printf, 1, 0)));
|
||||||
void Con_ToggleConsole_f (void);
|
void Con_ToggleConsole_f (void);
|
||||||
|
|
||||||
// wrapper function to attempt to either complete the command line
|
// wrapper function to attempt to either complete the command line
|
||||||
|
@ -105,7 +105,7 @@ void Con_BasicCompleteCommandLine (inputline_t *il);
|
||||||
// Generic libs/util/console.c function to display a list
|
// Generic libs/util/console.c function to display a list
|
||||||
// formatted in columns on the console
|
// formatted in columns on the console
|
||||||
void Con_DisplayList(const char **list, int con_linewidth);
|
void Con_DisplayList(const char **list, int con_linewidth);
|
||||||
extern void (*con_list_print)(const char *fmt, ...);
|
extern void (*con_list_print)(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
|
||||||
|
|
||||||
inputline_t *Con_CreateInputLine (int lines, int lsize, char prompt);
|
inputline_t *Con_CreateInputLine (int lines, int lsize, char prompt);
|
||||||
void Con_DestroyInputLine (inputline_t *inputline);
|
void Con_DestroyInputLine (inputline_t *inputline);
|
||||||
|
|
|
@ -38,8 +38,8 @@
|
||||||
void CRC_Init(unsigned short *crcvalue);
|
void CRC_Init(unsigned short *crcvalue);
|
||||||
void CRC_ProcessByte(unsigned short *crcvalue, byte data);
|
void CRC_ProcessByte(unsigned short *crcvalue, byte data);
|
||||||
void CRC_ProcessBlock (const byte *start, unsigned short *crcvalue, int count);
|
void CRC_ProcessBlock (const byte *start, unsigned short *crcvalue, int count);
|
||||||
unsigned short CRC_Value(unsigned short crcvalue);
|
unsigned short CRC_Value(unsigned short crcvalue) __attribute__((const));
|
||||||
unsigned short CRC_Block (const byte *start, int count);
|
unsigned short CRC_Block (const byte *start, int count) __attribute__((pure));
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
|
@ -122,12 +122,12 @@ void Cvar_WriteVariables (QFile *f);
|
||||||
|
|
||||||
// attempts to match a partial variable name for command line completion
|
// attempts to match a partial variable name for command line completion
|
||||||
// returns NULL if nothing fits
|
// returns NULL if nothing fits
|
||||||
const char *Cvar_CompleteVariable (const char *partial);
|
const char *Cvar_CompleteVariable (const char *partial) __attribute__((pure));
|
||||||
|
|
||||||
// Added by EvilTypeGuy - functions for tab completion system
|
// Added by EvilTypeGuy - functions for tab completion system
|
||||||
// Thanks to Fett erich@heintz.com
|
// Thanks to Fett erich@heintz.com
|
||||||
// Thanks to taniwha
|
// Thanks to taniwha
|
||||||
int Cvar_CompleteCountPossible (const char *partial);
|
int Cvar_CompleteCountPossible (const char *partial) __attribute__((pure));
|
||||||
const char **Cvar_CompleteBuildList (const char *partial);
|
const char **Cvar_CompleteBuildList (const char *partial);
|
||||||
|
|
||||||
// Returns a pointer to the Cvar, NULL if not found
|
// Returns a pointer to the Cvar, NULL if not found
|
||||||
|
|
|
@ -164,14 +164,14 @@ void dstring_clearstr (dstring_t *dstr);
|
||||||
/** Formatted printing to dstrings. Existing data is replaced by the formatted
|
/** Formatted printing to dstrings. Existing data is replaced by the formatted
|
||||||
string.
|
string.
|
||||||
*/
|
*/
|
||||||
int dvsprintf (dstring_t *dstr, const char *fmt, va_list args);
|
int dvsprintf (dstring_t *dstr, const char *fmt, va_list args) __attribute__((format(printf,2,0)));
|
||||||
int dsprintf (dstring_t *dstr, const char *fmt, ...) __attribute__((format(printf,2,3)));
|
int dsprintf (dstring_t *dstr, const char *fmt, ...) __attribute__((format(printf,2,3)));
|
||||||
//@}
|
//@}
|
||||||
//@{
|
//@{
|
||||||
/** Formatted printing to dstrings. Formatted string is appened to the dstring.
|
/** Formatted printing to dstrings. Formatted string is appened to the dstring.
|
||||||
Embedded nulls in the dstring are ignored.
|
Embedded nulls in the dstring are ignored.
|
||||||
*/
|
*/
|
||||||
int davsprintf (dstring_t *dstr, const char *fmt, va_list args);
|
int davsprintf (dstring_t *dstr, const char *fmt, va_list args) __attribute__((format(printf,2,0)));
|
||||||
int dasprintf (dstring_t *dstr, const char *fmt, ...) __attribute__((format(printf,2,3)));
|
int dasprintf (dstring_t *dstr, const char *fmt, ...) __attribute__((format(printf,2,3)));
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
|
@ -182,7 +182,7 @@ extern char * const gib_null_string;
|
||||||
#define GIB_CanReturn() (GIB_DATA(cbuf_active)->waitret)
|
#define GIB_CanReturn() (GIB_DATA(cbuf_active)->waitret)
|
||||||
|
|
||||||
dstring_t *GIB_Return (const char *str);
|
dstring_t *GIB_Return (const char *str);
|
||||||
void GIB_Error (const char *type, const char *fmt, ...);
|
void GIB_Error (const char *type, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
|
||||||
void GIB_Builtin_Add (const char *name, void (*func) (void));
|
void GIB_Builtin_Add (const char *name, void (*func) (void));
|
||||||
void GIB_Builtin_Remove (const char *name);
|
void GIB_Builtin_Remove (const char *name);
|
||||||
qboolean GIB_Builtin_Exists (const char *name);
|
qboolean GIB_Builtin_Exists (const char *name);
|
||||||
|
@ -199,12 +199,12 @@ void GIB_Event_Callback (gib_event_t *event, unsigned int argc, ...);
|
||||||
|
|
||||||
// Interpreter interface (for creating GIB cbufs)
|
// Interpreter interface (for creating GIB cbufs)
|
||||||
|
|
||||||
cbuf_interpreter_t *GIB_Interpreter (void);
|
cbuf_interpreter_t *GIB_Interpreter (void) __attribute__((const));
|
||||||
|
|
||||||
// Thread interface
|
// Thread interface
|
||||||
|
|
||||||
void GIB_Thread_Execute (void);
|
void GIB_Thread_Execute (void);
|
||||||
unsigned int GIB_Thread_Count (void);
|
unsigned int GIB_Thread_Count (void) __attribute__((pure));
|
||||||
|
|
||||||
// Init interface
|
// Init interface
|
||||||
|
|
||||||
|
@ -214,6 +214,6 @@ void GIB_Init (qboolean sandbox);
|
||||||
|
|
||||||
unsigned long int GIB_Handle_New (gib_object_t *data);
|
unsigned long int GIB_Handle_New (gib_object_t *data);
|
||||||
void GIB_Handle_Free (unsigned long int num);
|
void GIB_Handle_Free (unsigned long int num);
|
||||||
gib_object_t *GIB_Handle_Get (unsigned long int num);
|
gib_object_t *GIB_Handle_Get (unsigned long int num) __attribute__((pure));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -177,20 +177,20 @@ void Hash_Free (hashtab_t *tab, void *ele);
|
||||||
|
|
||||||
this is the same function as used internally.
|
this is the same function as used internally.
|
||||||
*/
|
*/
|
||||||
unsigned long Hash_String (const char *str);
|
unsigned long Hash_String (const char *str) __attribute__((pure));
|
||||||
|
|
||||||
/** hash a buffer.
|
/** hash a buffer.
|
||||||
\param buf the buffer to hash
|
\param buf the buffer to hash
|
||||||
\param len the size of the buffer
|
\param len the size of the buffer
|
||||||
\return the hash value of the string.
|
\return the hash value of the string.
|
||||||
*/
|
*/
|
||||||
unsigned long Hash_Buffer (const void *buf, int len);
|
unsigned long Hash_Buffer (const void *buf, int len) __attribute__((pure));
|
||||||
|
|
||||||
/** get the size of the table
|
/** get the size of the table
|
||||||
\param tab the table in question
|
\param tab the table in question
|
||||||
\return the number of elements in the table.
|
\return the number of elements in the table.
|
||||||
*/
|
*/
|
||||||
size_t Hash_NumElements (hashtab_t *tab);
|
size_t Hash_NumElements (hashtab_t *tab) __attribute__((pure));
|
||||||
|
|
||||||
/** list of all elements in the table.
|
/** list of all elements in the table.
|
||||||
\param tab the table to list
|
\param tab the table to list
|
||||||
|
|
|
@ -47,10 +47,10 @@ typedef struct info_key_s {
|
||||||
const char *value;
|
const char *value;
|
||||||
} info_key_t;
|
} info_key_t;
|
||||||
|
|
||||||
qboolean Info_FilterForKey (const char *key, const char **filter_list);
|
qboolean Info_FilterForKey (const char *key, const char **filter_list) __attribute__((pure));
|
||||||
|
|
||||||
void Info_Print (info_t *info);
|
void Info_Print (info_t *info);
|
||||||
int Info_CurrentSize (info_t *info);
|
int Info_CurrentSize (info_t *info) __attribute__((pure));
|
||||||
info_key_t *Info_Key (info_t *info, const char *key);
|
info_key_t *Info_Key (info_t *info, const char *key);
|
||||||
info_key_t **Info_KeyList (info_t *info);
|
info_key_t **Info_KeyList (info_t *info);
|
||||||
void Info_RemoveKey (info_t *info, const char *key);
|
void Info_RemoveKey (info_t *info, const char *key);
|
||||||
|
|
|
@ -144,11 +144,11 @@ void JOY_Close (void);
|
||||||
void JOY_Read (void);
|
void JOY_Read (void);
|
||||||
|
|
||||||
|
|
||||||
const char *JOY_GetOption_c (int i);
|
const char *JOY_GetOption_c (int i) __attribute__((pure));
|
||||||
int JOY_GetOption_i (const char *c);
|
int JOY_GetOption_i (const char *c) __attribute__((pure));
|
||||||
|
|
||||||
const char *JOY_GetDest_c (int i);
|
const char *JOY_GetDest_c (int i) __attribute__((pure));
|
||||||
int JOY_GetDest_i (const char *c);
|
int JOY_GetDest_i (const char *c) __attribute__((pure));
|
||||||
int JOY_GetAxis_i (int dest, const char *c);
|
int JOY_GetAxis_i (int dest, const char *c);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -544,7 +544,7 @@ void Key_Init_Cvars (void);
|
||||||
\param imt_name The name of the imt to find. Case insensitive.
|
\param imt_name The name of the imt to find. Case insensitive.
|
||||||
\return The named imt, or null if not found.
|
\return The named imt, or null if not found.
|
||||||
*/
|
*/
|
||||||
imt_t *Key_FindIMT (const char *imt_name);
|
imt_t *Key_FindIMT (const char *imt_name) __attribute__((pure));
|
||||||
|
|
||||||
/** Create a new imt and attach it to the specified keydest target.
|
/** Create a new imt and attach it to the specified keydest target.
|
||||||
|
|
||||||
|
@ -599,7 +599,7 @@ void Key_ClearStates (void);
|
||||||
\param key The key for which to get the binding.
|
\param key The key for which to get the binding.
|
||||||
\return The command string bound to the key, or null if unbound.
|
\return The command string bound to the key, or null if unbound.
|
||||||
*/
|
*/
|
||||||
const char *Key_GetBinding (imt_t *imt, knum_t key);
|
const char *Key_GetBinding (imt_t *imt, knum_t key) __attribute__((pure));
|
||||||
|
|
||||||
/** Bind a command string to a key in the specified input mapping table.
|
/** Bind a command string to a key in the specified input mapping table.
|
||||||
|
|
||||||
|
@ -639,7 +639,7 @@ void Key_KeydestCallback (keydest_callback_t *callback);
|
||||||
\param keynum The key for which to get the string.
|
\param keynum The key for which to get the string.
|
||||||
\return The string representation of the key.
|
\return The string representation of the key.
|
||||||
*/
|
*/
|
||||||
const char *Key_KeynumToString (knum_t keynum);
|
const char *Key_KeynumToString (knum_t keynum) __attribute__((pure));
|
||||||
|
|
||||||
/** Get the keynum for the named key.
|
/** Get the keynum for the named key.
|
||||||
|
|
||||||
|
@ -650,7 +650,7 @@ const char *Key_KeynumToString (knum_t keynum);
|
||||||
\param str The name of the key.
|
\param str The name of the key.
|
||||||
\return The named key if valid, otherwise -1
|
\return The named key if valid, otherwise -1
|
||||||
*/
|
*/
|
||||||
int Key_StringToKeynum (const char *str);
|
int Key_StringToKeynum (const char *str) __attribute__((pure));
|
||||||
|
|
||||||
struct progs_s;
|
struct progs_s;
|
||||||
|
|
||||||
|
|
|
@ -53,11 +53,11 @@ void llist_flush (llist_t *list);
|
||||||
void llist_delete (llist_t *list);
|
void llist_delete (llist_t *list);
|
||||||
llist_node_t *llist_append (llist_t *list, void *element);
|
llist_node_t *llist_append (llist_t *list, void *element);
|
||||||
llist_node_t *llist_prefix (llist_t *list, void *element);
|
llist_node_t *llist_prefix (llist_t *list, void *element);
|
||||||
llist_node_t *llist_getnode (llist_t *list, void *element);
|
llist_node_t *llist_getnode (llist_t *list, void *element) __attribute__((pure));
|
||||||
llist_node_t *llist_insertafter (llist_node_t *ref, void *element);
|
llist_node_t *llist_insertafter (llist_node_t *ref, void *element);
|
||||||
llist_node_t *llist_insertbefore (llist_node_t *ref, void *element);
|
llist_node_t *llist_insertbefore (llist_node_t *ref, void *element);
|
||||||
void *llist_remove (llist_node_t *ref);
|
void *llist_remove (llist_node_t *ref);
|
||||||
unsigned int llist_size (llist_t *llist);
|
unsigned int llist_size (llist_t *llist) __attribute__((pure));
|
||||||
void llist_iterate (llist_t *list, llist_iterator_t iterate);
|
void llist_iterate (llist_t *list, llist_iterator_t iterate);
|
||||||
void *llist_find (llist_t *list, void *comparison);
|
void *llist_find (llist_t *list, void *comparison);
|
||||||
llist_node_t *llist_findnode (llist_t *list, void *comparison);
|
llist_node_t *llist_findnode (llist_t *list, void *comparison);
|
||||||
|
|
|
@ -36,13 +36,13 @@ typedef struct
|
||||||
char *name;
|
char *name;
|
||||||
} location_t;
|
} location_t;
|
||||||
|
|
||||||
location_t *locs_find(const vec3_t target);
|
location_t *locs_find(const vec3_t target) __attribute__((pure));
|
||||||
void locs_add (const vec3_t location, const char *name);
|
void locs_add (const vec3_t location, const char *name);
|
||||||
void locs_del (const vec3_t loc);
|
void locs_del (const vec3_t loc);
|
||||||
void locs_edit (const vec3_t loc, const char *desc);
|
void locs_edit (const vec3_t loc, const char *desc);
|
||||||
void locs_load(const char *filename);
|
void locs_load(const char *filename);
|
||||||
void locs_mark (const vec3_t loc, const char *desc);
|
void locs_mark (const vec3_t loc, const char *desc);
|
||||||
int locs_nearest (const vec3_t loc);
|
int locs_nearest (const vec3_t loc) __attribute__((pure));
|
||||||
void locs_reset (void);
|
void locs_reset (void);
|
||||||
void locs_save (const char *filename, qboolean gz);
|
void locs_save (const char *filename, qboolean gz);
|
||||||
void map_to_loc (const char *mapname, char *filename);
|
void map_to_loc (const char *mapname, char *filename);
|
||||||
|
|
|
@ -39,8 +39,8 @@
|
||||||
#include "QF/qtypes.h"
|
#include "QF/qtypes.h"
|
||||||
|
|
||||||
|
|
||||||
int16_t FloatToHalf (float x);
|
int16_t FloatToHalf (float x) __attribute__((const));
|
||||||
float HalfToFloat (int16_t x);
|
float HalfToFloat (int16_t x) __attribute__((const));
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,7 @@
|
||||||
|
|
||||||
void Mat3Init (const quat_t rot, const vec3_t scale, mat3_t mat);
|
void Mat3Init (const quat_t rot, const vec3_t scale, mat3_t mat);
|
||||||
void Mat3Transpose (const mat3_t a, mat3_t b);
|
void Mat3Transpose (const mat3_t a, mat3_t b);
|
||||||
vec_t Mat3Determinant (const mat3_t m);
|
vec_t Mat3Determinant (const mat3_t m) __attribute__((pure));
|
||||||
int Mat3Inverse (const mat3_t a, mat3_t b);
|
int Mat3Inverse (const mat3_t a, mat3_t b);
|
||||||
void Mat3Mult (const mat3_t a, const mat3_t b, mat3_t c);
|
void Mat3Mult (const mat3_t a, const mat3_t b, mat3_t c);
|
||||||
void Mat3MultVec (const mat3_t a, const vec3_t b, vec3_t c);
|
void Mat3MultVec (const mat3_t a, const vec3_t b, vec3_t c);
|
||||||
|
|
|
@ -171,11 +171,11 @@ extern const vec_t *const vec3_origin;
|
||||||
(((a)[2] - (b)[2]) * ((a)[2] - (b)[2])))
|
(((a)[2] - (b)[2]) * ((a)[2] - (b)[2])))
|
||||||
#define VectorDistance(a, b) sqrt(VectorDistance_fast(a, b))
|
#define VectorDistance(a, b) sqrt(VectorDistance_fast(a, b))
|
||||||
|
|
||||||
vec_t _DotProduct (const vec3_t v1, const vec3_t v2);
|
vec_t _DotProduct (const vec3_t v1, const vec3_t v2) __attribute__((pure));
|
||||||
void _VectorAdd (const vec3_t veca, const vec3_t vecb, vec3_t out);
|
void _VectorAdd (const vec3_t veca, const vec3_t vecb, vec3_t out);
|
||||||
void _VectorCopy (const vec3_t in, vec3_t out);
|
void _VectorCopy (const vec3_t in, vec3_t out);
|
||||||
int _VectorCompare (const vec3_t v1, const vec3_t v2); // uses EQUAL_EPSILON
|
int _VectorCompare (const vec3_t v1, const vec3_t v2) __attribute__((pure)); // uses EQUAL_EPSILON
|
||||||
vec_t _VectorLength (const vec3_t v);
|
vec_t _VectorLength (const vec3_t v) __attribute__((pure));
|
||||||
void _VectorMA (const vec3_t veca, float scale, const vec3_t vecb,
|
void _VectorMA (const vec3_t veca, float scale, const vec3_t vecb,
|
||||||
vec3_t vecc);
|
vec3_t vecc);
|
||||||
void _VectorScale (const vec3_t in, vec_t scale, vec3_t out);
|
void _VectorScale (const vec3_t in, vec_t scale, vec3_t out);
|
||||||
|
|
|
@ -73,15 +73,15 @@ extern int nanmask;
|
||||||
// fall over
|
// fall over
|
||||||
#define ROLL 2
|
#define ROLL 2
|
||||||
|
|
||||||
int Q_log2(int val);
|
int Q_log2(int val) __attribute__((const));
|
||||||
|
|
||||||
void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3]);
|
void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3]);
|
||||||
void R_ConcatTransforms (float in1[3][4], float in2[3][4], float out[3][4]);
|
void R_ConcatTransforms (float in1[3][4], float in2[3][4], float out[3][4]);
|
||||||
|
|
||||||
void FloorDivMod (double numer, double denom, int *quotient, int *rem);
|
void FloorDivMod (double numer, double denom, int *quotient, int *rem);
|
||||||
fixed16_t Invert24To16(fixed16_t val);
|
fixed16_t Invert24To16(fixed16_t val) __attribute__((const));
|
||||||
fixed16_t Mul16_30(fixed16_t multiplier, fixed16_t multiplicand);
|
fixed16_t Mul16_30(fixed16_t multiplier, fixed16_t multiplicand);
|
||||||
int GreatestCommonDivisor (int i1, int i2);
|
int GreatestCommonDivisor (int i1, int i2) __attribute__((const));
|
||||||
|
|
||||||
/** Convert quake angles to basis vectors.
|
/** Convert quake angles to basis vectors.
|
||||||
|
|
||||||
|
@ -139,8 +139,8 @@ void AngleVectors (const vec3_t angles, vec3_t forward, vec3_t right,
|
||||||
void AngleQuat (const vec3_t angles, quat_t q);
|
void AngleQuat (const vec3_t angles, quat_t q);
|
||||||
void VectorVectors (const vec3_t forward, vec3_t right, vec3_t up);
|
void VectorVectors (const vec3_t forward, vec3_t right, vec3_t up);
|
||||||
int BoxOnPlaneSide (const vec3_t emins, const vec3_t emaxs,
|
int BoxOnPlaneSide (const vec3_t emins, const vec3_t emaxs,
|
||||||
struct plane_s *plane);
|
struct plane_s *plane) __attribute__((pure));
|
||||||
float anglemod (float a);
|
float anglemod (float a) __attribute__((const));
|
||||||
|
|
||||||
void RotatePointAroundVector (vec3_t dst, const vec3_t axis,
|
void RotatePointAroundVector (vec3_t dst, const vec3_t axis,
|
||||||
const vec3_t point, float degrees);
|
const vec3_t point, float degrees);
|
||||||
|
@ -174,7 +174,7 @@ void RotatePointAroundVector (vec3_t dst, const vec3_t axis,
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
extern plane_t * const frustum;
|
extern plane_t * const frustum;
|
||||||
GNU89INLINE inline qboolean R_CullBox (const vec3_t mins, const vec3_t maxs);
|
GNU89INLINE inline qboolean R_CullBox (const vec3_t mins, const vec3_t maxs) __attribute__((pure));
|
||||||
GNU89INLINE inline qboolean R_CullSphere (const vec3_t origin, const float radius);
|
GNU89INLINE inline qboolean R_CullSphere (const vec3_t origin, const float radius);
|
||||||
|
|
||||||
#ifndef IMPLEMENT_R_Cull
|
#ifndef IMPLEMENT_R_Cull
|
||||||
|
|
|
@ -433,7 +433,7 @@ typedef struct model_s {
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
extern float RadiusFromBounds (const vec3_t mins, const vec3_t maxs);
|
extern float RadiusFromBounds (const vec3_t mins, const vec3_t maxs) __attribute__((pure));
|
||||||
void Mod_Init (void);
|
void Mod_Init (void);
|
||||||
void Mod_Init_Cvars (void);
|
void Mod_Init_Cvars (void);
|
||||||
void Mod_ClearAll (void);
|
void Mod_ClearAll (void);
|
||||||
|
@ -441,7 +441,7 @@ model_t *Mod_ForName (const char *name, qboolean crash);
|
||||||
void *Mod_Extradata (model_t *mod); // handles caching
|
void *Mod_Extradata (model_t *mod); // handles caching
|
||||||
void Mod_TouchModel (const char *name);
|
void Mod_TouchModel (const char *name);
|
||||||
|
|
||||||
mleaf_t *Mod_PointInLeaf (const vec3_t p, model_t *model);
|
mleaf_t *Mod_PointInLeaf (const vec3_t p, model_t *model) __attribute__((pure));
|
||||||
byte *Mod_LeafPVS (mleaf_t *leaf, model_t *model);
|
byte *Mod_LeafPVS (mleaf_t *leaf, model_t *model);
|
||||||
model_t *Mod_FindName (const char *name);
|
model_t *Mod_FindName (const char *name);
|
||||||
int Mod_CalcFullbright (byte *in, byte *out, int pixels);
|
int Mod_CalcFullbright (byte *in, byte *out, int pixels);
|
||||||
|
|
|
@ -73,7 +73,7 @@ void MSG_BeginReading (qmsg_t *msg);
|
||||||
\param msg The message to check.
|
\param msg The message to check.
|
||||||
\return The number of bytes that have been read.
|
\return The number of bytes that have been read.
|
||||||
*/
|
*/
|
||||||
int MSG_GetReadCount(qmsg_t *msg);
|
int MSG_GetReadCount(qmsg_t *msg) __attribute__((pure));
|
||||||
|
|
||||||
/** Read a single byte from the message.
|
/** Read a single byte from the message.
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
#include <QF/qtypes.h>
|
#include <QF/qtypes.h>
|
||||||
|
|
||||||
#ifdef STATIC_PLUGINS
|
#ifdef STATIC_PLUGINS
|
||||||
#define PLUGIN_INFO(type,name) plugin_t *type##_##name##_PluginInfo (void); plugin_t * type##_##name##_PluginInfo (void)
|
#define PLUGIN_INFO(type,name) plugin_t *type##_##name##_PluginInfo (void); __attribute__((const)) plugin_t * type##_##name##_PluginInfo (void)
|
||||||
#else
|
#else
|
||||||
#define PLUGIN_INFO(type,name) plugin_t *PluginInfo (void); __attribute__((visibility ("default"))) plugin_t *PluginInfo (void)
|
#define PLUGIN_INFO(type,name) plugin_t *PluginInfo (void); __attribute__((visibility ("default"))) plugin_t *PluginInfo (void)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#include <QF/plugin.h>
|
#include <QF/plugin.h>
|
||||||
#include <QF/qtypes.h>
|
#include <QF/qtypes.h>
|
||||||
|
|
||||||
typedef void (*P_C_Print) (const char *fmt, va_list args);
|
typedef void (*P_C_Print) (const char *fmt, va_list args) __attribute__((format(printf, 1, 0)));
|
||||||
typedef void (*P_C_ProcessInput) (void);
|
typedef void (*P_C_ProcessInput) (void);
|
||||||
typedef void (*P_C_KeyEvent) (knum_t key, short unicode, qboolean down);
|
typedef void (*P_C_KeyEvent) (knum_t key, short unicode, qboolean down);
|
||||||
typedef void (*P_C_DrawConsole) (void);
|
typedef void (*P_C_DrawConsole) (void);
|
||||||
|
|
|
@ -228,10 +228,10 @@ struct edict_s {
|
||||||
void ED_ClearEdict (progs_t *pr, edict_t *e, int val);
|
void ED_ClearEdict (progs_t *pr, edict_t *e, int val);
|
||||||
edict_t *ED_Alloc (progs_t *pr);
|
edict_t *ED_Alloc (progs_t *pr);
|
||||||
void ED_Free (progs_t *pr, edict_t *ed);
|
void ED_Free (progs_t *pr, edict_t *ed);
|
||||||
edict_t *ED_EdictNum(progs_t *pr, pr_int_t n);
|
edict_t *ED_EdictNum(progs_t *pr, pr_int_t n) __attribute__((pure));
|
||||||
pr_int_t ED_NumForEdict(progs_t *pr, edict_t *e);
|
pr_int_t ED_NumForEdict(progs_t *pr, edict_t *e) __attribute__((pure));
|
||||||
void ED_Count (progs_t *pr);
|
void ED_Count (progs_t *pr);
|
||||||
qboolean PR_EdictValid (progs_t *pr, pr_int_t e);
|
qboolean PR_EdictValid (progs_t *pr, pr_int_t e) __attribute__((pure));
|
||||||
|
|
||||||
// pr_debug.c
|
// pr_debug.c
|
||||||
void ED_Print (progs_t *pr, edict_t *ed);
|
void ED_Print (progs_t *pr, edict_t *ed);
|
||||||
|
@ -274,8 +274,8 @@ void ED_EntityParseFunction (progs_t *pr);
|
||||||
*/
|
*/
|
||||||
//@{
|
//@{
|
||||||
|
|
||||||
ddef_t *PR_FieldAtOfs (progs_t *pr, pr_int_t ofs);
|
ddef_t *PR_FieldAtOfs (progs_t *pr, pr_int_t ofs) __attribute__((pure));
|
||||||
ddef_t *PR_GlobalAtOfs (progs_t *pr, pr_int_t ofs);
|
ddef_t *PR_GlobalAtOfs (progs_t *pr, pr_int_t ofs) __attribute__((pure));
|
||||||
|
|
||||||
ddef_t *PR_FindField (progs_t *pr, const char *name);
|
ddef_t *PR_FindField (progs_t *pr, const char *name);
|
||||||
ddef_t *PR_FindGlobal (progs_t *pr, const char *name);
|
ddef_t *PR_FindGlobal (progs_t *pr, const char *name);
|
||||||
|
@ -1112,21 +1112,21 @@ int PR_LoadStrings (progs_t *pr);
|
||||||
\param num string index to be validated
|
\param num string index to be validated
|
||||||
\return true if the index is valid, false otherwise
|
\return true if the index is valid, false otherwise
|
||||||
*/
|
*/
|
||||||
qboolean PR_StringValid (progs_t *pr, string_t num);
|
qboolean PR_StringValid (progs_t *pr, string_t num) __attribute__((pure));
|
||||||
|
|
||||||
/** Convert a string index to a C string.
|
/** Convert a string index to a C string.
|
||||||
\param pr pointer to ::progs_t VM struct
|
\param pr pointer to ::progs_t VM struct
|
||||||
\param num string index to be converted
|
\param num string index to be converted
|
||||||
\return C pointer to the string.
|
\return C pointer to the string.
|
||||||
*/
|
*/
|
||||||
const char *PR_GetString(progs_t *pr, string_t num);
|
const char *PR_GetString(progs_t *pr, string_t num) __attribute__((pure));
|
||||||
|
|
||||||
/** Retrieve the dstring_t associated with a mutable string.
|
/** Retrieve the dstring_t associated with a mutable string.
|
||||||
\param pr pointer to ::progs_t VM struct
|
\param pr pointer to ::progs_t VM struct
|
||||||
\param num string index of the mutable string
|
\param num string index of the mutable string
|
||||||
\return the dstring implementing the mutable string
|
\return the dstring implementing the mutable string
|
||||||
*/
|
*/
|
||||||
struct dstring_s *PR_GetMutableString(progs_t *pr, string_t num);
|
struct dstring_s *PR_GetMutableString(progs_t *pr, string_t num) __attribute__((pure));
|
||||||
|
|
||||||
/** Make a permanent progs string from the given C string. Will not create a
|
/** Make a permanent progs string from the given C string. Will not create a
|
||||||
duplicate permanent string (temporary and mutable strings are not checked).
|
duplicate permanent string (temporary and mutable strings are not checked).
|
||||||
|
@ -1450,14 +1450,14 @@ void PR_Debug_Init_Cvars (void);
|
||||||
int PR_LoadDebug (progs_t *pr);
|
int PR_LoadDebug (progs_t *pr);
|
||||||
void PR_Debug_Watch (progs_t *pr, const char *expr);
|
void PR_Debug_Watch (progs_t *pr, const char *expr);
|
||||||
void PR_Debug_Print (progs_t *pr, const char *expr);
|
void PR_Debug_Print (progs_t *pr, const char *expr);
|
||||||
pr_auxfunction_t *PR_Get_Lineno_Func (progs_t *pr, pr_lineno_t *lineno);
|
pr_auxfunction_t *PR_Get_Lineno_Func (progs_t *pr, pr_lineno_t *lineno) __attribute__((pure));
|
||||||
pr_uint_t PR_Get_Lineno_Addr (progs_t *pr, pr_lineno_t *lineno);
|
pr_uint_t PR_Get_Lineno_Addr (progs_t *pr, pr_lineno_t *lineno) __attribute__((pure));
|
||||||
pr_uint_t PR_Get_Lineno_Line (progs_t *pr, pr_lineno_t *lineno);
|
pr_uint_t PR_Get_Lineno_Line (progs_t *pr, pr_lineno_t *lineno) __attribute__((pure));
|
||||||
pr_lineno_t *PR_Find_Lineno (progs_t *pr, pr_uint_t addr);
|
pr_lineno_t *PR_Find_Lineno (progs_t *pr, pr_uint_t addr) __attribute__((pure));
|
||||||
const char *PR_Get_Source_File (progs_t *pr, pr_lineno_t *lineno);
|
const char *PR_Get_Source_File (progs_t *pr, pr_lineno_t *lineno) __attribute__((pure));
|
||||||
const char *PR_Get_Source_Line (progs_t *pr, pr_uint_t addr);
|
const char *PR_Get_Source_Line (progs_t *pr, pr_uint_t addr);
|
||||||
ddef_t *PR_Get_Param_Def (progs_t *pr, dfunction_t *func, unsigned parm);
|
ddef_t *PR_Get_Param_Def (progs_t *pr, dfunction_t *func, unsigned parm) __attribute__((pure));
|
||||||
ddef_t *PR_Get_Local_Def (progs_t *pr, pr_int_t offs);
|
ddef_t *PR_Get_Local_Def (progs_t *pr, pr_int_t offs) __attribute__((pure));
|
||||||
void PR_PrintStatement (progs_t *pr, dstatement_t *s, int contents);
|
void PR_PrintStatement (progs_t *pr, dstatement_t *s, int contents);
|
||||||
void PR_DumpState (progs_t *pr);
|
void PR_DumpState (progs_t *pr);
|
||||||
void PR_StackTrace (progs_t *pr);
|
void PR_StackTrace (progs_t *pr);
|
||||||
|
|
|
@ -42,7 +42,7 @@ extern const char *com_cmdline;
|
||||||
extern struct cvar_s *fs_globalcfg;
|
extern struct cvar_s *fs_globalcfg;
|
||||||
extern struct cvar_s *fs_usercfg;
|
extern struct cvar_s *fs_usercfg;
|
||||||
|
|
||||||
int COM_CheckParm (const char *parm);
|
int COM_CheckParm (const char *parm) __attribute__((pure));
|
||||||
void COM_AddParm (const char *parm);
|
void COM_AddParm (const char *parm);
|
||||||
|
|
||||||
void COM_Init (void);
|
void COM_Init (void);
|
||||||
|
|
|
@ -75,12 +75,12 @@
|
||||||
|
|
||||||
extern qboolean bigendien;
|
extern qboolean bigendien;
|
||||||
|
|
||||||
uint16_t _ShortSwap (uint16_t l);
|
uint16_t _ShortSwap (uint16_t l) __attribute__((const));
|
||||||
uint16_t _ShortNoSwap (uint16_t l);
|
uint16_t _ShortNoSwap (uint16_t l) __attribute__((const));
|
||||||
uint32_t _LongSwap (uint32_t l);
|
uint32_t _LongSwap (uint32_t l) __attribute__((const));
|
||||||
uint32_t _LongNoSwap (uint32_t l);
|
uint32_t _LongNoSwap (uint32_t l) __attribute__((const));
|
||||||
float _FloatSwap (float f);
|
float _FloatSwap (float f) __attribute__((const));
|
||||||
float _FloatNoSwap (float f);
|
float _FloatNoSwap (float f) __attribute__((const));
|
||||||
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
|
|
|
@ -75,7 +75,7 @@ char *PL_WritePropertyList (plitem_t *pl);
|
||||||
\param item The object
|
\param item The object
|
||||||
\return the type of the object
|
\return the type of the object
|
||||||
*/
|
*/
|
||||||
pltype_t PL_Type (plitem_t *item);
|
pltype_t PL_Type (plitem_t *item) __attribute__((pure));
|
||||||
|
|
||||||
/** Retrieve a string from a string object.
|
/** Retrieve a string from a string object.
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ pltype_t PL_Type (plitem_t *item);
|
||||||
\note You are NOT responsible for freeing the returned object. It will
|
\note You are NOT responsible for freeing the returned object. It will
|
||||||
be destroyed when its container is.
|
be destroyed when its container is.
|
||||||
*/
|
*/
|
||||||
const char *PL_String (plitem_t *string);
|
const char *PL_String (plitem_t *string) __attribute__((pure));
|
||||||
|
|
||||||
/** Retrieve a value from a dictionary object.
|
/** Retrieve a value from a dictionary object.
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ plitem_t *PL_RemoveObjectForKey (plitem_t *dict, const char *key);
|
||||||
\note You are NOT responsible for freeing the returned object. It will
|
\note You are NOT responsible for freeing the returned object. It will
|
||||||
be destroyed when its container is.
|
be destroyed when its container is.
|
||||||
*/
|
*/
|
||||||
plitem_t *PL_ObjectAtIndex (plitem_t *array, int index);
|
plitem_t *PL_ObjectAtIndex (plitem_t *array, int index) __attribute__((pure));
|
||||||
|
|
||||||
/** Retrieve a list of all keys in a dictionary.
|
/** Retrieve a list of all keys in a dictionary.
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ plitem_t *PL_D_AllKeys (plitem_t *dict);
|
||||||
|
|
||||||
\return Returns the number of keys in the dictionary.
|
\return Returns the number of keys in the dictionary.
|
||||||
*/
|
*/
|
||||||
int PL_D_NumKeys (plitem_t *dict);
|
int PL_D_NumKeys (plitem_t *dict) __attribute__((pure));
|
||||||
|
|
||||||
/** Add a key/value pair to a dictionary.
|
/** Add a key/value pair to a dictionary.
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ qboolean PL_A_AddObject (plitem_t *array, plitem_t *item);
|
||||||
|
|
||||||
\return number of objects in the array
|
\return number of objects in the array
|
||||||
*/
|
*/
|
||||||
int PL_A_NumObjects (plitem_t *array);
|
int PL_A_NumObjects (plitem_t *array) __attribute__((pure));
|
||||||
|
|
||||||
/** Insert an item into an array before the specified location.
|
/** Insert an item into an array before the specified location.
|
||||||
|
|
||||||
|
|
|
@ -356,7 +356,7 @@ char *QFS_CompressPath (const char *pth);
|
||||||
\return Pointer to the beginning of the filename. This points
|
\return Pointer to the beginning of the filename. This points
|
||||||
inside \a pathname.
|
inside \a pathname.
|
||||||
*/
|
*/
|
||||||
const char *QFS_SkipPath (const char *pathname);
|
const char *QFS_SkipPath (const char *pathname) __attribute__((pure));
|
||||||
|
|
||||||
/** Return a pointer to the start of the extention part of the path.
|
/** Return a pointer to the start of the extention part of the path.
|
||||||
|
|
||||||
|
@ -366,7 +366,7 @@ const char *QFS_SkipPath (const char *pathname);
|
||||||
the returned pointer will point to the terminating nul
|
the returned pointer will point to the terminating nul
|
||||||
of the path.
|
of the path.
|
||||||
*/
|
*/
|
||||||
const char *QFS_FileExtension (const char *in);
|
const char *QFS_FileExtension (const char *in) __attribute__((pure));
|
||||||
|
|
||||||
/** Register a callback function for when the gamedir changes.
|
/** Register a callback function for when the gamedir changes.
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ typedef struct QFile_s QFile;
|
||||||
|
|
||||||
int Qrename(const char *old_path, const char *new_path);
|
int Qrename(const char *old_path, const char *new_path);
|
||||||
int Qremove(const char *path);
|
int Qremove(const char *path);
|
||||||
int Qfilesize (QFile *file);
|
int Qfilesize (QFile *file) __attribute__((pure));
|
||||||
QFile *Qopen(const char *path, const char *mode);
|
QFile *Qopen(const char *path, const char *mode);
|
||||||
QFile *Qdopen(int fd, const char *mode);
|
QFile *Qdopen(int fd, const char *mode);
|
||||||
QFile *Qfopen (FILE *file, const char *mode);
|
QFile *Qfopen (FILE *file, const char *mode);
|
||||||
|
|
|
@ -95,7 +95,7 @@ void Script_UngetToken (script_t *script);
|
||||||
/** Return a pointer to the current token.
|
/** Return a pointer to the current token.
|
||||||
\param script The script_t object being parsed
|
\param script The script_t object being parsed
|
||||||
*/
|
*/
|
||||||
const char *Script_Token (script_t *script);
|
const char *Script_Token (script_t *script) __attribute__((pure));
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
|
@ -256,14 +256,14 @@ set_t *set_everything (set_t *set);
|
||||||
\param set The set to test.
|
\param set The set to test.
|
||||||
\return 1 if \a set is empty (non-inverted).
|
\return 1 if \a set is empty (non-inverted).
|
||||||
*/
|
*/
|
||||||
int set_is_empty (const set_t *set);
|
int set_is_empty (const set_t *set) __attribute__((pure));
|
||||||
|
|
||||||
/** Test if a set is the set of everything.
|
/** Test if a set is the set of everything.
|
||||||
|
|
||||||
\param set The set to test.
|
\param set The set to test.
|
||||||
\return 1 if \a set is the set of everything (empty inverted set).
|
\return 1 if \a set is the set of everything (empty inverted set).
|
||||||
*/
|
*/
|
||||||
int set_is_everything (const set_t *set);
|
int set_is_everything (const set_t *set) __attribute__((pure));
|
||||||
|
|
||||||
/** Test if two sets are disjoint.
|
/** Test if two sets are disjoint.
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ int set_is_everything (const set_t *set);
|
||||||
|
|
||||||
\note The emtpy set is disjoint with itself.
|
\note The emtpy set is disjoint with itself.
|
||||||
*/
|
*/
|
||||||
int set_is_disjoint (const set_t *s1, const set_t *s2);
|
int set_is_disjoint (const set_t *s1, const set_t *s2) __attribute__((pure));
|
||||||
|
|
||||||
/** Test if two sets intersect.
|
/** Test if two sets intersect.
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ int set_is_disjoint (const set_t *s1, const set_t *s2);
|
||||||
|
|
||||||
\note Equivalent non-empty sets are treated as intersecting.
|
\note Equivalent non-empty sets are treated as intersecting.
|
||||||
*/
|
*/
|
||||||
int set_is_intersecting (const set_t *s1, const set_t *s2);
|
int set_is_intersecting (const set_t *s1, const set_t *s2) __attribute__((pure));
|
||||||
|
|
||||||
/** Test if two sets are equivalent.
|
/** Test if two sets are equivalent.
|
||||||
|
|
||||||
|
@ -291,7 +291,7 @@ int set_is_intersecting (const set_t *s1, const set_t *s2);
|
||||||
\param s2 The second set to test.
|
\param s2 The second set to test.
|
||||||
\return 1 if \a s2 is equivalent to \a s1, 0 if not.
|
\return 1 if \a s2 is equivalent to \a s1, 0 if not.
|
||||||
*/
|
*/
|
||||||
int set_is_equivalent (const set_t *s1, const set_t *s2);
|
int set_is_equivalent (const set_t *s1, const set_t *s2) __attribute__((pure));
|
||||||
|
|
||||||
/** Test if a set is a subset of another set.
|
/** Test if a set is a subset of another set.
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@ int set_is_equivalent (const set_t *s1, const set_t *s2);
|
||||||
\return 1 if \a sub is a subset of \a set, or if the sets are
|
\return 1 if \a sub is a subset of \a set, or if the sets are
|
||||||
equivalent.
|
equivalent.
|
||||||
*/
|
*/
|
||||||
int set_is_subset (const set_t *set, const set_t *sub);
|
int set_is_subset (const set_t *set, const set_t *sub) __attribute__((pure));
|
||||||
|
|
||||||
/** Test an element for membership in a set.
|
/** Test an element for membership in a set.
|
||||||
|
|
||||||
|
@ -310,7 +310,7 @@ int set_is_subset (const set_t *set, const set_t *sub);
|
||||||
\param x The element to test.
|
\param x The element to test.
|
||||||
\return 1 if the element is a member of the set, otherwise 0.
|
\return 1 if the element is a member of the set, otherwise 0.
|
||||||
*/
|
*/
|
||||||
int set_is_member (const set_t *set, unsigned x);
|
int set_is_member (const set_t *set, unsigned x) __attribute__((pure));
|
||||||
|
|
||||||
/** Obtain the number of members (or non-members) of a set.
|
/** Obtain the number of members (or non-members) of a set.
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@ int set_is_member (const set_t *set, unsigned x);
|
||||||
\return The number of (non-)members. Both empty sets and sets of
|
\return The number of (non-)members. Both empty sets and sets of
|
||||||
evertything will return 0.
|
evertything will return 0.
|
||||||
*/
|
*/
|
||||||
unsigned set_size (const set_t *set);
|
unsigned set_size (const set_t *set) __attribute__((pure));
|
||||||
|
|
||||||
/** Find the first "member" of the set.
|
/** Find the first "member" of the set.
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ int Sys_FileExists (const char *path);
|
||||||
int Sys_isdir (const char *path);
|
int Sys_isdir (const char *path);
|
||||||
int Sys_mkdir (const char *path);
|
int Sys_mkdir (const char *path);
|
||||||
|
|
||||||
typedef void (*sys_printf_t) (const char *fmt, va_list args);
|
typedef void (*sys_printf_t) (const char *fmt, va_list args) __attribute__((format(printf, 1, 0)));
|
||||||
typedef void (*sys_error_t) (void *data);
|
typedef void (*sys_error_t) (void *data);
|
||||||
|
|
||||||
void Sys_SetStdPrintf (sys_printf_t func);
|
void Sys_SetStdPrintf (sys_printf_t func);
|
||||||
|
@ -71,7 +71,7 @@ void Sys_SetErrPrintf (sys_printf_t func);
|
||||||
void Sys_PushErrorHandler (sys_error_t func, void *data);
|
void Sys_PushErrorHandler (sys_error_t func, void *data);
|
||||||
void Sys_PopErrorHandler (void);
|
void Sys_PopErrorHandler (void);
|
||||||
|
|
||||||
void Sys_Print (FILE *stream, const char *fmt, va_list args);
|
void Sys_Print (FILE *stream, const char *fmt, va_list args) __attribute__((format(printf, 2, 0)));
|
||||||
void Sys_Printf (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
void Sys_Printf (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
||||||
void Sys_Error (const char *error, ...) __attribute__((format(printf,1,2), noreturn));
|
void Sys_Error (const char *error, ...) __attribute__((format(printf,1,2), noreturn));
|
||||||
void Sys_FatalError (const char *error, ...) __attribute__((format(printf,1,2), noreturn));
|
void Sys_FatalError (const char *error, ...) __attribute__((format(printf,1,2), noreturn));
|
||||||
|
|
|
@ -107,7 +107,7 @@ void Z_CheckPointer (const memzone_t *zone, const void *ptr, int size);
|
||||||
|
|
||||||
void *Hunk_Alloc (int size); // returns 0 filled memory
|
void *Hunk_Alloc (int size); // returns 0 filled memory
|
||||||
void *Hunk_AllocName (int size, const char *name);
|
void *Hunk_AllocName (int size, const char *name);
|
||||||
int Hunk_LowMark (void);
|
int Hunk_LowMark (void) __attribute__((pure));
|
||||||
void Hunk_FreeToLowMark (int mark);
|
void Hunk_FreeToLowMark (int mark);
|
||||||
void *Hunk_TempAlloc (int size);
|
void *Hunk_TempAlloc (int size);
|
||||||
void Hunk_Check (void);
|
void Hunk_Check (void);
|
||||||
|
@ -138,7 +138,7 @@ void Cache_Remove (cache_user_t *c);
|
||||||
void *Cache_TryGet (cache_user_t *c);
|
void *Cache_TryGet (cache_user_t *c);
|
||||||
void *Cache_Get (cache_user_t *c);
|
void *Cache_Get (cache_user_t *c);
|
||||||
void Cache_Release (cache_user_t *c);
|
void Cache_Release (cache_user_t *c);
|
||||||
int Cache_ReadLock (cache_user_t *c);
|
int Cache_ReadLock (cache_user_t *c) __attribute__((pure));
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ typedef enum {
|
||||||
typedef struct particle_s particle_t;
|
typedef struct particle_s particle_t;
|
||||||
typedef void (*pt_phys_func)(particle_t *);
|
typedef void (*pt_phys_func)(particle_t *);
|
||||||
|
|
||||||
pt_phys_func R_ParticlePhysics (ptype_t type);
|
pt_phys_func R_ParticlePhysics (ptype_t type) __attribute__((pure));
|
||||||
|
|
||||||
// !!! if this is changed, it must be changed in d_ifacea.h too !!!
|
// !!! if this is changed, it must be changed in d_ifacea.h too !!!
|
||||||
struct particle_s
|
struct particle_s
|
||||||
|
|
|
@ -94,11 +94,11 @@ void R_ShowSubDiv (void);
|
||||||
extern void (*prealspandrawer)(void);
|
extern void (*prealspandrawer)(void);
|
||||||
surfcache_t *D_CacheSurface (msurface_t *surface, int miplevel);
|
surfcache_t *D_CacheSurface (msurface_t *surface, int miplevel);
|
||||||
|
|
||||||
extern int D_MipLevelForScale (float scale);
|
int D_MipLevelForScale (float scale) __attribute__((pure));
|
||||||
|
|
||||||
#ifdef USE_INTEL_ASM
|
#ifdef USE_INTEL_ASM
|
||||||
extern void D_PolysetAff8Start (void);
|
void D_PolysetAff8Start (void);
|
||||||
extern void D_PolysetAff8End (void);
|
void D_PolysetAff8End (void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern short *d_pzbuffer;
|
extern short *d_pzbuffer;
|
||||||
|
|
|
@ -80,7 +80,7 @@ typedef union token_u
|
||||||
|
|
||||||
extern exp_error_t EXP_ERROR;
|
extern exp_error_t EXP_ERROR;
|
||||||
|
|
||||||
const char *EXP_GetErrorMsg (void);
|
const char *EXP_GetErrorMsg (void) __attribute__((pure));
|
||||||
token *EXP_ParseString (char *str);
|
token *EXP_ParseString (char *str);
|
||||||
exp_error_t EXP_SimplifyTokens (token *chain);
|
exp_error_t EXP_SimplifyTokens (token *chain);
|
||||||
void EXP_RemoveToken (token *tok);
|
void EXP_RemoveToken (token *tok);
|
||||||
|
|
|
@ -40,7 +40,7 @@ void GIB_Buffer_Push_Sstack (struct cbuf_s *cbuf);
|
||||||
void GIB_Buffer_Pop_Sstack (struct cbuf_s *cbuf);
|
void GIB_Buffer_Pop_Sstack (struct cbuf_s *cbuf);
|
||||||
dstring_t *GIB_Buffer_Dsarray_Get (struct cbuf_s *cbuf);
|
dstring_t *GIB_Buffer_Dsarray_Get (struct cbuf_s *cbuf);
|
||||||
void GIB_Buffer_Reply_Callback (int argc, const char **argv, void *data);
|
void GIB_Buffer_Reply_Callback (int argc, const char **argv, void *data);
|
||||||
void GIB_Buffer_Error (cbuf_t *cbuf, const char *type, const char *fmt, va_list args);
|
void GIB_Buffer_Error (cbuf_t *cbuf, const char *type, const char *fmt, va_list args) __attribute__((format(printf, 3, 0)));
|
||||||
|
|
||||||
extern struct cbuf_interpreter_s gib_interp;
|
extern struct cbuf_interpreter_s gib_interp;
|
||||||
|
|
||||||
|
|
|
@ -43,5 +43,5 @@ gib_tree_t *GIB_Parse_Embedded (gib_tree_t *token);
|
||||||
|
|
||||||
extern qboolean gib_parse_error;
|
extern qboolean gib_parse_error;
|
||||||
void GIB_Parse_Error (const char *msg, unsigned int pos);
|
void GIB_Parse_Error (const char *msg, unsigned int pos);
|
||||||
const char *GIB_Parse_ErrorMsg (void);
|
const char *GIB_Parse_ErrorMsg (void) __attribute__((pure));
|
||||||
unsigned int GIB_Parse_ErrorPos (void);
|
unsigned int GIB_Parse_ErrorPos (void) __attribute__((pure));
|
||||||
|
|
|
@ -39,7 +39,7 @@ typedef struct gib_regex_s {
|
||||||
|
|
||||||
void GIB_Regex_Init (void);
|
void GIB_Regex_Init (void);
|
||||||
regex_t *GIB_Regex_Compile (const char *regex, int cflags);
|
regex_t *GIB_Regex_Compile (const char *regex, int cflags);
|
||||||
const char *GIB_Regex_Error (void);
|
const char *GIB_Regex_Error (void) __attribute__((const));
|
||||||
int GIB_Regex_Translate_Options (const char *opstr);
|
int GIB_Regex_Translate_Options (const char *opstr) __attribute__((pure));
|
||||||
int GIB_Regex_Translate_Runtime_Options (const char *opstr);
|
int GIB_Regex_Translate_Runtime_Options (const char *opstr) __attribute__((pure));
|
||||||
unsigned int GIB_Regex_Apply_Match (regmatch_t match[10], dstring_t *dstr, unsigned int ofs, const char *replace);
|
unsigned int GIB_Regex_Apply_Match (regmatch_t match[10], dstring_t *dstr, unsigned int ofs, const char *replace);
|
||||||
|
|
|
@ -116,7 +116,7 @@ void NET_SendPacket (int length, const void *data, netadr_t to);
|
||||||
\param b The second address to compare.
|
\param b The second address to compare.
|
||||||
\return True of the addresses match, otherwise false.
|
\return True of the addresses match, otherwise false.
|
||||||
*/
|
*/
|
||||||
qboolean NET_CompareAdr (netadr_t a, netadr_t b);
|
qboolean NET_CompareAdr (netadr_t a, netadr_t b) __attribute__((pure));
|
||||||
|
|
||||||
/** Compare two network addresses.
|
/** Compare two network addresses.
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ qboolean NET_CompareAdr (netadr_t a, netadr_t b);
|
||||||
\param b The second address to compare.
|
\param b The second address to compare.
|
||||||
\return True of the addresses match, otherwise false.
|
\return True of the addresses match, otherwise false.
|
||||||
*/
|
*/
|
||||||
qboolean NET_CompareBaseAdr (netadr_t a, netadr_t b);
|
qboolean NET_CompareBaseAdr (netadr_t a, netadr_t b) __attribute__((pure));
|
||||||
|
|
||||||
/** Convert an address to a string.
|
/** Convert an address to a string.
|
||||||
|
|
||||||
|
@ -362,7 +362,7 @@ void Netchan_Setup (netchan_t *chan, netadr_t adr, int qport, ncqport_e flags);
|
||||||
\param chan The netchan representing the connection.
|
\param chan The netchan representing the connection.
|
||||||
\return True if the connection isn't chocked.
|
\return True if the connection isn't chocked.
|
||||||
*/
|
*/
|
||||||
qboolean Netchan_CanPacket (netchan_t *chan);
|
qboolean Netchan_CanPacket (netchan_t *chan) __attribute__((pure));
|
||||||
|
|
||||||
/** Check if a reliable packet can be sent to the connection.
|
/** Check if a reliable packet can be sent to the connection.
|
||||||
|
|
||||||
|
@ -370,7 +370,7 @@ qboolean Netchan_CanPacket (netchan_t *chan);
|
||||||
\return True if there is no outstanding reliable packet and the
|
\return True if there is no outstanding reliable packet and the
|
||||||
connection isn't chocked.
|
connection isn't chocked.
|
||||||
*/
|
*/
|
||||||
qboolean Netchan_CanReliable (netchan_t *chan);
|
qboolean Netchan_CanReliable (netchan_t *chan) __attribute__((pure));
|
||||||
|
|
||||||
/** Send a packet.
|
/** Send a packet.
|
||||||
|
|
||||||
|
|
|
@ -22,34 +22,34 @@
|
||||||
#ifndef __ops_h
|
#ifndef __ops_h
|
||||||
#define __ops_h
|
#define __ops_h
|
||||||
|
|
||||||
double OP_Not (double op1, double op2);
|
double OP_Not (double op1, double op2) __attribute__((const));
|
||||||
double OP_Negate (double op1, double op2);
|
double OP_Negate (double op1, double op2) __attribute__((const));
|
||||||
double OP_Add (double op1, double op2);
|
double OP_Add (double op1, double op2) __attribute__((const));
|
||||||
double OP_Sub (double op1, double op2);
|
double OP_Sub (double op1, double op2) __attribute__((const));
|
||||||
double OP_Mult (double op1, double op2);
|
double OP_Mult (double op1, double op2) __attribute__((const));
|
||||||
double OP_Div (double op1, double op2);
|
double OP_Div (double op1, double op2) __attribute__((const));
|
||||||
double OP_Exp (double op1, double op2);
|
double OP_Exp (double op1, double op2) __attribute__((const));
|
||||||
double OP_Eq (double op1, double op2);
|
double OP_Eq (double op1, double op2) __attribute__((const));
|
||||||
double OP_Neq (double op1, double op2);
|
double OP_Neq (double op1, double op2) __attribute__((const));
|
||||||
double OP_Or (double op1, double op2);
|
double OP_Or (double op1, double op2) __attribute__((const));
|
||||||
double OP_And (double op1, double op2);
|
double OP_And (double op1, double op2) __attribute__((const));
|
||||||
double OP_GreaterThan (double op1, double op2);
|
double OP_GreaterThan (double op1, double op2) __attribute__((const));
|
||||||
double OP_LessThan (double op1, double op2);
|
double OP_LessThan (double op1, double op2) __attribute__((const));
|
||||||
double OP_GreaterThanEqual (double op1, double op2);
|
double OP_GreaterThanEqual (double op1, double op2) __attribute__((const));
|
||||||
double OP_LessThanEqual (double op1, double op2);
|
double OP_LessThanEqual (double op1, double op2) __attribute__((const));
|
||||||
double OP_BitAnd (double op1, double op2);
|
double OP_BitAnd (double op1, double op2) __attribute__((const));
|
||||||
double OP_BitOr (double op1, double op2);
|
double OP_BitOr (double op1, double op2) __attribute__((const));
|
||||||
double OP_BitXor (double op1, double op2);
|
double OP_BitXor (double op1, double op2) __attribute__((const));
|
||||||
double OP_BitInv (double op1, double op2);
|
double OP_BitInv (double op1, double op2) __attribute__((const));
|
||||||
|
|
||||||
double Func_Sin (double *oplist, unsigned int numops);
|
double Func_Sin (double *oplist, unsigned int numops) __attribute__((pure));
|
||||||
double Func_Cos (double *oplist, unsigned int numops);
|
double Func_Cos (double *oplist, unsigned int numops) __attribute__((pure));
|
||||||
double Func_Tan (double *oplist, unsigned int numops);
|
double Func_Tan (double *oplist, unsigned int numops) __attribute__((pure));
|
||||||
double Func_Asin (double *oplist, unsigned int numops);
|
double Func_Asin (double *oplist, unsigned int numops) __attribute__((pure));
|
||||||
double Func_Acos (double *oplist, unsigned int numops);
|
double Func_Acos (double *oplist, unsigned int numops) __attribute__((pure));
|
||||||
double Func_Atan (double *oplist, unsigned int numops);
|
double Func_Atan (double *oplist, unsigned int numops) __attribute__((pure));
|
||||||
double Func_Sqrt (double *oplist, unsigned int numops);
|
double Func_Sqrt (double *oplist, unsigned int numops) __attribute__((pure));
|
||||||
double Func_Abs (double *oplist, unsigned int numops);
|
double Func_Abs (double *oplist, unsigned int numops) __attribute__((pure));
|
||||||
double Func_Rand (double *oplist, unsigned int numops);
|
double Func_Rand (double *oplist, unsigned int numops);
|
||||||
double Func_Trunc (double *oplist, unsigned int numops);
|
double Func_Trunc (double *oplist, unsigned int numops) __attribute__((pure));
|
||||||
#endif // __ops_h
|
#endif // __ops_h
|
||||||
|
|
|
@ -31,8 +31,8 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
const char * Q_strcasestr (const char *haystack, const char *needle);
|
const char * Q_strcasestr (const char *haystack, const char *needle) __attribute__((pure));
|
||||||
size_t Q_strnlen (const char *s, size_t maxlen);
|
size_t Q_strnlen (const char *s, size_t maxlen) __attribute__((pure));
|
||||||
size_t Q_snprintfz (char *dest, size_t size, const char *fmt, ...) __attribute__((format(printf,3,4)));
|
size_t Q_snprintfz (char *dest, size_t size, const char *fmt, ...) __attribute__((format(printf,3,4)));
|
||||||
size_t Q_vsnprintfz (char *dest, size_t size, const char *fmt, va_list argptr);
|
size_t Q_vsnprintfz (char *dest, size_t size, const char *fmt, va_list argptr);
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ typedef struct backbuf_s {
|
||||||
const char *name;
|
const char *name;
|
||||||
} backbuf_t;
|
} backbuf_t;
|
||||||
|
|
||||||
int MSG_ReliableCheckSize (backbuf_t *rel, int maxsize, int minsize);
|
int MSG_ReliableCheckSize (backbuf_t *rel, int maxsize, int minsize) __attribute__((pure));
|
||||||
sizebuf_t *MSG_ReliableCheckBlock(backbuf_t *rel, int maxsize);
|
sizebuf_t *MSG_ReliableCheckBlock(backbuf_t *rel, int maxsize);
|
||||||
void MSG_Reliable_FinishWrite(backbuf_t *rel);
|
void MSG_Reliable_FinishWrite(backbuf_t *rel);
|
||||||
sizebuf_t *MSG_ReliableWrite_Begin(backbuf_t *rel, int c, int maxsize);
|
sizebuf_t *MSG_ReliableWrite_Begin(backbuf_t *rel, int c, int maxsize);
|
||||||
|
|
|
@ -106,9 +106,9 @@ void PlayerMove (void);
|
||||||
void Pmove_Init (void);
|
void Pmove_Init (void);
|
||||||
void Pmove_Init_Cvars (void);
|
void Pmove_Init_Cvars (void);
|
||||||
|
|
||||||
int PM_HullPointContents (hull_t *hull, int num, const vec3_t p);
|
int PM_HullPointContents (hull_t *hull, int num, const vec3_t p) __attribute__((pure));
|
||||||
|
|
||||||
int PM_PointContents (const vec3_t point);
|
int PM_PointContents (const vec3_t point) __attribute__((pure));
|
||||||
qboolean PM_TestPlayerPosition (const vec3_t point);
|
qboolean PM_TestPlayerPosition (const vec3_t point);
|
||||||
trace_t PM_PlayerMove (const vec3_t start, const vec3_t stop);
|
trace_t PM_PlayerMove (const vec3_t start, const vec3_t stop);
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ struct plitem_s;
|
||||||
void Fog_ParseWorldspawn (struct plitem_s *worldspawn);
|
void Fog_ParseWorldspawn (struct plitem_s *worldspawn);
|
||||||
|
|
||||||
float *Fog_GetColor (void);
|
float *Fog_GetColor (void);
|
||||||
float Fog_GetDensity (void);
|
float Fog_GetDensity (void) __attribute__((pure));
|
||||||
void Fog_SetupFrame (void);
|
void Fog_SetupFrame (void);
|
||||||
void Fog_EnableGFog (void);
|
void Fog_EnableGFog (void);
|
||||||
void Fog_DisableGFog (void);
|
void Fog_DisableGFog (void);
|
||||||
|
@ -63,7 +63,7 @@ void R_NewMap (model_t *worldmodel, model_t **models, int num_models);
|
||||||
void R_PushDlights (const vec3_t entorigin);
|
void R_PushDlights (const vec3_t entorigin);
|
||||||
void R_DrawWaterSurfaces (void);
|
void R_DrawWaterSurfaces (void);
|
||||||
|
|
||||||
void *D_SurfaceCacheAddress (void);
|
void *D_SurfaceCacheAddress (void) __attribute__((pure));
|
||||||
int D_SurfaceCacheForRes (int width, int height);
|
int D_SurfaceCacheForRes (int width, int height);
|
||||||
void D_FlushCaches (void);
|
void D_FlushCaches (void);
|
||||||
void D_DeleteSurfaceCache (void);
|
void D_DeleteSurfaceCache (void);
|
||||||
|
|
|
@ -151,7 +151,7 @@ void R_TransformPlane (plane_t *p, float *normal, float *dist);
|
||||||
void R_TransformFrustum (void);
|
void R_TransformFrustum (void);
|
||||||
void R_SetSkyFrame (void);
|
void R_SetSkyFrame (void);
|
||||||
void R_DrawSurfaceBlock (void);
|
void R_DrawSurfaceBlock (void);
|
||||||
texture_t *R_TextureAnimation (msurface_t *surf);
|
texture_t *R_TextureAnimation (msurface_t *surf) __attribute__((pure));
|
||||||
|
|
||||||
void R_GenSkyTile (void *pdest);
|
void R_GenSkyTile (void *pdest);
|
||||||
void R_SurfPatch (void);
|
void R_SurfPatch (void);
|
||||||
|
|
|
@ -71,7 +71,7 @@ extern vrect_t scr_vrect;
|
||||||
|
|
||||||
extern qboolean scr_skipupdate;
|
extern qboolean scr_skipupdate;
|
||||||
|
|
||||||
float CalcFov (float fov_x, float width, float height);
|
float CalcFov (float fov_x, float width, float height) __attribute__((const));
|
||||||
void SCR_SetUpToDrawConsole (void);
|
void SCR_SetUpToDrawConsole (void);
|
||||||
void SCR_ScreenShot_f (void);
|
void SCR_ScreenShot_f (void);
|
||||||
|
|
||||||
|
|
|
@ -502,13 +502,13 @@ int SND_LoadMidi (QFile *file, sfx_t *sfx, char *realname);
|
||||||
\param sfx sound reference
|
\param sfx sound reference
|
||||||
\return pointer to sound's wavinfo
|
\return pointer to sound's wavinfo
|
||||||
*/
|
*/
|
||||||
wavinfo_t *SND_CacheWavinfo (sfx_t *sfx);
|
wavinfo_t *SND_CacheWavinfo (sfx_t *sfx) __attribute__((pure));
|
||||||
|
|
||||||
/** Retrieve wavinfo from a streamed sound.
|
/** Retrieve wavinfo from a streamed sound.
|
||||||
\param sfx sound reference
|
\param sfx sound reference
|
||||||
\return pointer to sound's wavinfo
|
\return pointer to sound's wavinfo
|
||||||
*/
|
*/
|
||||||
wavinfo_t *SND_StreamWavinfo (sfx_t *sfx);
|
wavinfo_t *SND_StreamWavinfo (sfx_t *sfx) __attribute__((pure));
|
||||||
|
|
||||||
/** Ensure a cached sound is in memory.
|
/** Ensure a cached sound is in memory.
|
||||||
\param sfx sound reference
|
\param sfx sound reference
|
||||||
|
@ -522,7 +522,7 @@ sfxbuffer_t *SND_CacheTouch (sfx_t *sfx);
|
||||||
\note The sound must be retained with SND_CacheRetain() for the returned
|
\note The sound must be retained with SND_CacheRetain() for the returned
|
||||||
buffer to be valid.
|
buffer to be valid.
|
||||||
*/
|
*/
|
||||||
sfxbuffer_t *SND_CacheGetBuffer (sfx_t *sfx);
|
sfxbuffer_t *SND_CacheGetBuffer (sfx_t *sfx) __attribute__((pure));
|
||||||
|
|
||||||
/** Lock a cached sound into memory. After calling this, SND_CacheGetBffer()
|
/** Lock a cached sound into memory. After calling this, SND_CacheGetBffer()
|
||||||
will return a valid buffer.
|
will return a valid buffer.
|
||||||
|
@ -541,14 +541,14 @@ void SND_CacheRelease (sfx_t *sfx);
|
||||||
\param sfx sound reference
|
\param sfx sound reference
|
||||||
\return poitner to sound buffer
|
\return poitner to sound buffer
|
||||||
*/
|
*/
|
||||||
sfxbuffer_t *SND_StreamGetBuffer (sfx_t *sfx);
|
sfxbuffer_t *SND_StreamGetBuffer (sfx_t *sfx) __attribute__((pure));
|
||||||
|
|
||||||
/** Lock a streamed sound into memory. Doesn't actually do anything other than
|
/** Lock a streamed sound into memory. Doesn't actually do anything other than
|
||||||
return a pointer to the buffer.
|
return a pointer to the buffer.
|
||||||
\param sfx sound reference
|
\param sfx sound reference
|
||||||
\return poitner to sound buffer
|
\return poitner to sound buffer
|
||||||
*/
|
*/
|
||||||
sfxbuffer_t *SND_StreamRetain (sfx_t *sfx);
|
sfxbuffer_t *SND_StreamRetain (sfx_t *sfx) __attribute__((pure));
|
||||||
|
|
||||||
/** Unlock a streamed sound from memory. Doesn't actually do anything.
|
/** Unlock a streamed sound from memory. Doesn't actually do anything.
|
||||||
\param sfx sound reference
|
\param sfx sound reference
|
||||||
|
|
|
@ -98,8 +98,8 @@ void SV_LinkEdict (struct edict_s *ent, qboolean touch_triggers);
|
||||||
// sets ent->v.absmin and ent->v.absmax
|
// sets ent->v.absmin and ent->v.absmax
|
||||||
// if touchtriggers, calls prog functions for the intersected triggers
|
// if touchtriggers, calls prog functions for the intersected triggers
|
||||||
|
|
||||||
int SV_PointContents (const vec3_t p);
|
int SV_PointContents (const vec3_t p) __attribute__((pure));
|
||||||
int SV_TruePointContents (const vec3_t p);
|
int SV_TruePointContents (const vec3_t p) __attribute__((pure));
|
||||||
// returns the CONTENTS_* value from the world at the given point.
|
// returns the CONTENTS_* value from the world at the given point.
|
||||||
// does not check any entities at all
|
// does not check any entities at all
|
||||||
// the non-true version remaps the water current contents to content_water
|
// the non-true version remaps the water current contents to content_water
|
||||||
|
@ -123,7 +123,7 @@ trace_t SV_Move (const vec3_t start, const vec3_t mins, const vec3_t maxs,
|
||||||
struct edict_s *SV_TestPlayerPosition (struct edict_s *ent,
|
struct edict_s *SV_TestPlayerPosition (struct edict_s *ent,
|
||||||
const vec3_t origin);
|
const vec3_t origin);
|
||||||
|
|
||||||
int SV_HullPointContents (hull_t *hull, int num, const vec3_t p);
|
int SV_HullPointContents (hull_t *hull, int num, const vec3_t p) __attribute__((pure));
|
||||||
hull_t *SV_HullForEntity (struct edict_s *ent, const vec3_t mins,
|
hull_t *SV_HullForEntity (struct edict_s *ent, const vec3_t mins,
|
||||||
const vec3_t maxs, vec3_t extents, vec3_t offset);
|
const vec3_t maxs, vec3_t extents, vec3_t offset);
|
||||||
void MOD_TraceLine (hull_t *hull, int num,
|
void MOD_TraceLine (hull_t *hull, int num,
|
||||||
|
|
|
@ -103,7 +103,7 @@ SNDDMA_Init_Cvars (void)
|
||||||
|
|
||||||
static int SNDDMA_GetDMAPos (void);
|
static int SNDDMA_GetDMAPos (void);
|
||||||
|
|
||||||
static snd_pcm_uframes_t
|
static __attribute__((const)) snd_pcm_uframes_t
|
||||||
round_buffer_size (snd_pcm_uframes_t sz)
|
round_buffer_size (snd_pcm_uframes_t sz)
|
||||||
{
|
{
|
||||||
snd_pcm_uframes_t mask = ~0;
|
snd_pcm_uframes_t mask = ~0;
|
||||||
|
|
|
@ -360,7 +360,7 @@ Linefeed (void)
|
||||||
All console printing must go through this in order to be logged to disk
|
All console printing must go through this in order to be logged to disk
|
||||||
If no console is visible, the notify window will pop up.
|
If no console is visible, the notify window will pop up.
|
||||||
*/
|
*/
|
||||||
static void
|
static __attribute__((format(printf, 1, 0))) void
|
||||||
C_Print (const char *fmt, va_list args)
|
C_Print (const char *fmt, va_list args)
|
||||||
{
|
{
|
||||||
char *s;
|
char *s;
|
||||||
|
|
|
@ -708,7 +708,7 @@ C_Shutdown (void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static __attribute__((format(printf, 1, 0))) void
|
||||||
C_Print (const char *fmt, va_list args)
|
C_Print (const char *fmt, va_list args)
|
||||||
{
|
{
|
||||||
static dstring_t *buffer;
|
static dstring_t *buffer;
|
||||||
|
|
|
@ -144,7 +144,7 @@ free_string_ref (progs_t *pr, strref_t *sr)
|
||||||
pr->free_string_refs = sr;
|
pr->free_string_refs = sr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static string_t
|
static __attribute__((pure)) string_t
|
||||||
string_index (progs_t *pr, strref_t *sr)
|
string_index (progs_t *pr, strref_t *sr)
|
||||||
{
|
{
|
||||||
long o = (long) (sr - pr->static_strings);
|
long o = (long) (sr - pr->static_strings);
|
||||||
|
@ -251,7 +251,7 @@ get_strref (progs_t *pr, string_t num)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline const char *
|
static inline __attribute__((pure)) const char *
|
||||||
get_string (progs_t *pr, string_t num)
|
get_string (progs_t *pr, string_t num)
|
||||||
{
|
{
|
||||||
if (num < 0) {
|
if (num < 0) {
|
||||||
|
|
|
@ -154,7 +154,7 @@ EXP_FindFuncByStr (const char *str)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
EXP_ContainsCommas (token * chain)
|
EXP_ContainsCommas (token * chain)
|
||||||
{
|
{
|
||||||
token *cur;
|
token *cur;
|
||||||
|
|
|
@ -104,7 +104,7 @@ NET_Ban_f (void)
|
||||||
{
|
{
|
||||||
char addrStr[32]; //FIXME: overflow
|
char addrStr[32]; //FIXME: overflow
|
||||||
char maskStr[32]; //FIXME: overflow
|
char maskStr[32]; //FIXME: overflow
|
||||||
void (*print) (const char *fmt, ...);
|
__attribute__((format(printf, 1, 2))) void (*print) (const char *fmt, ...);
|
||||||
|
|
||||||
if (cmd_source == src_command) {
|
if (cmd_source == src_command) {
|
||||||
if (!sv.active) {
|
if (!sv.active) {
|
||||||
|
@ -262,7 +262,7 @@ Datagram_CanSendMessage (qsocket_t *sock)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
qboolean
|
__attribute__((const)) qboolean
|
||||||
Datagram_CanSendUnreliableMessage (qsocket_t *sock)
|
Datagram_CanSendUnreliableMessage (qsocket_t *sock)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -42,7 +42,7 @@ qboolean localconnectpending = false;
|
||||||
qsocket_t *loop_client = NULL;
|
qsocket_t *loop_client = NULL;
|
||||||
qsocket_t *loop_server = NULL;
|
qsocket_t *loop_server = NULL;
|
||||||
|
|
||||||
int
|
__attribute__((pure)) int
|
||||||
Loop_Init (void)
|
Loop_Init (void)
|
||||||
{
|
{
|
||||||
if (cls.state == ca_dedicated)
|
if (cls.state == ca_dedicated)
|
||||||
|
@ -240,7 +240,7 @@ Loop_SendUnreliableMessage (qsocket_t * sock, sizebuf_t *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
qboolean
|
__attribute__((pure)) qboolean
|
||||||
Loop_CanSendMessage (qsocket_t * sock)
|
Loop_CanSendMessage (qsocket_t * sock)
|
||||||
{
|
{
|
||||||
if (!sock->driverdata)
|
if (!sock->driverdata)
|
||||||
|
@ -249,7 +249,7 @@ Loop_CanSendMessage (qsocket_t * sock)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
qboolean
|
__attribute__((const)) qboolean
|
||||||
Loop_CanSendUnreliableMessage (qsocket_t * sock)
|
Loop_CanSendUnreliableMessage (qsocket_t * sock)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -433,7 +433,7 @@ error:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
__attribute__((const)) int
|
||||||
UDP_Connect (int socket, netadr_t *addr)
|
UDP_Connect (int socket, netadr_t *addr)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -651,7 +651,7 @@ UDP_GetAddrFromName (const char *name, netadr_t *addr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
__attribute__((pure)) int
|
||||||
UDP_AddrCompare (netadr_t *addr1, netadr_t *addr2)
|
UDP_AddrCompare (netadr_t *addr1, netadr_t *addr2)
|
||||||
{
|
{
|
||||||
if (addr1->family != addr2->family)
|
if (addr1->family != addr2->family)
|
||||||
|
@ -666,7 +666,7 @@ UDP_AddrCompare (netadr_t *addr1, netadr_t *addr2)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
__attribute__((pure)) int
|
||||||
UDP_GetSocketPort (netadr_t *addr)
|
UDP_GetSocketPort (netadr_t *addr)
|
||||||
{
|
{
|
||||||
return ntohs (addr->port);
|
return ntohs (addr->port);
|
||||||
|
|
|
@ -166,14 +166,14 @@ VCR_SearchForHosts (qboolean xmit)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
qsocket_t *
|
__attribute__((const)) qsocket_t *
|
||||||
VCR_Connect (const char *host)
|
VCR_Connect (const char *host)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
qsocket_t *
|
qsocket_t *
|
||||||
VCR_CheckNewConnections (void)
|
VCR_CheckNewConnections (void)
|
||||||
{
|
{
|
||||||
qsocket_t *sock;
|
qsocket_t *sock;
|
||||||
|
|
|
@ -299,7 +299,7 @@ dstring_clearstr (dstring_t *dstr)
|
||||||
dstr->str[0] = 0;
|
dstr->str[0] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((format(printf, 3, 0))) int
|
||||||
_dvsprintf (dstring_t *dstr, int offs, const char *fmt, va_list args)
|
_dvsprintf (dstring_t *dstr, int offs, const char *fmt, va_list args)
|
||||||
{
|
{
|
||||||
int size;
|
int size;
|
||||||
|
|
|
@ -343,7 +343,7 @@ set_everything (set_t *set)
|
||||||
return set;
|
return set;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline __attribute__((pure)) int
|
||||||
_set_is_empty (const set_t *set)
|
_set_is_empty (const set_t *set)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
@ -370,7 +370,7 @@ set_is_everything (const set_t *set)
|
||||||
return _set_is_empty (set);
|
return _set_is_empty (set);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
set_test_n_n (const set_t *s1, const set_t *s2)
|
set_test_n_n (const set_t *s1, const set_t *s2)
|
||||||
{
|
{
|
||||||
unsigned i, end;
|
unsigned i, end;
|
||||||
|
@ -394,7 +394,7 @@ set_test_n_n (const set_t *s1, const set_t *s2)
|
||||||
return (difference != 0) | ((intersection != 0) << 1);
|
return (difference != 0) | ((intersection != 0) << 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
set_test_n_i (const set_t *s1, const set_t *s2)
|
set_test_n_i (const set_t *s1, const set_t *s2)
|
||||||
{
|
{
|
||||||
unsigned i, end;
|
unsigned i, end;
|
||||||
|
@ -419,7 +419,7 @@ set_test_n_i (const set_t *s1, const set_t *s2)
|
||||||
return (difference != 0) | ((intersection != 0) << 1);
|
return (difference != 0) | ((intersection != 0) << 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
set_test_i_n (const set_t *s1, const set_t *s2)
|
set_test_i_n (const set_t *s1, const set_t *s2)
|
||||||
{
|
{
|
||||||
unsigned i, end;
|
unsigned i, end;
|
||||||
|
@ -444,7 +444,7 @@ set_test_i_n (const set_t *s1, const set_t *s2)
|
||||||
return (difference != 0) | ((intersection != 0) << 1);
|
return (difference != 0) | ((intersection != 0) << 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
set_test_i_i (const set_t *s1, const set_t *s2)
|
set_test_i_i (const set_t *s1, const set_t *s2)
|
||||||
{
|
{
|
||||||
unsigned i, end;
|
unsigned i, end;
|
||||||
|
@ -470,7 +470,7 @@ set_test_i_i (const set_t *s1, const set_t *s2)
|
||||||
return (difference != 0) | ((intersection != 0) << 1);
|
return (difference != 0) | ((intersection != 0) << 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
set_test (const set_t *s1, const set_t *s2)
|
set_test (const set_t *s1, const set_t *s2)
|
||||||
{
|
{
|
||||||
if (s1->inverted && s2->inverted)
|
if (s1->inverted && s2->inverted)
|
||||||
|
|
|
@ -90,8 +90,8 @@
|
||||||
|
|
||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
|
|
||||||
static void Sys_StdPrintf (const char *fmt, va_list args);
|
static void Sys_StdPrintf (const char *fmt, va_list args) __attribute__((format(printf, 1, 0)));
|
||||||
static void Sys_ErrPrintf (const char *fmt, va_list args);
|
static void Sys_ErrPrintf (const char *fmt, va_list args) __attribute__((format(printf, 1, 0)));
|
||||||
|
|
||||||
VISIBLE cvar_t *sys_nostdout;
|
VISIBLE cvar_t *sys_nostdout;
|
||||||
VISIBLE cvar_t *sys_extrasleep;
|
VISIBLE cvar_t *sys_extrasleep;
|
||||||
|
|
|
@ -134,7 +134,7 @@ print_rects (vrect_t *rect)
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
compare_rects (vrect_t *r1, vrect_t *r2)
|
compare_rects (vrect_t *r1, vrect_t *r2)
|
||||||
{
|
{
|
||||||
if (!r1 && !r2)
|
if (!r1 && !r2)
|
||||||
|
|
|
@ -91,7 +91,7 @@ GLF_FindFunctions (void)
|
||||||
It takes a bit of care to be fool-proof about parsing an OpenGL extensions
|
It takes a bit of care to be fool-proof about parsing an OpenGL extensions
|
||||||
string. Don't be fooled by sub-strings, etc.
|
string. Don't be fooled by sub-strings, etc.
|
||||||
*/
|
*/
|
||||||
static qboolean
|
static __attribute__((pure)) qboolean
|
||||||
QFGL_ParseExtensionList (const GLubyte *list, const char *name)
|
QFGL_ParseExtensionList (const GLubyte *list, const char *name)
|
||||||
{
|
{
|
||||||
const char *start;
|
const char *start;
|
||||||
|
|
|
@ -1321,7 +1321,7 @@ glsl_R_InitBsp (void)
|
||||||
GLSL_FreeShader (frag_shader);
|
GLSL_FreeShader (frag_shader);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline __attribute__((const)) int
|
||||||
is_pow2 (unsigned x)
|
is_pow2 (unsigned x)
|
||||||
{
|
{
|
||||||
int count;
|
int count;
|
||||||
|
|
|
@ -227,7 +227,7 @@ glsl_SCR_CaptureBGR (void)
|
||||||
return tex;
|
return tex;
|
||||||
}
|
}
|
||||||
|
|
||||||
tex_t *
|
__attribute__((const)) tex_t *
|
||||||
glsl_SCR_ScreenShot (int width, int height)
|
glsl_SCR_ScreenShot (int width, int height)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -87,7 +87,7 @@ sw32_SCR_CaptureBGR (void)
|
||||||
return tex;
|
return tex;
|
||||||
}
|
}
|
||||||
|
|
||||||
tex_t *
|
__attribute__((const)) tex_t *
|
||||||
sw32_SCR_ScreenShot (int width, int height)
|
sw32_SCR_ScreenShot (int width, int height)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -511,7 +511,7 @@ keyname_t keynames[] = {
|
||||||
{NULL, 0}
|
{NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
static imt_t *
|
static __attribute__((pure)) imt_t *
|
||||||
key_target_find_imt (keytarget_t *kt, const char *imt_name)
|
key_target_find_imt (keytarget_t *kt, const char *imt_name)
|
||||||
{
|
{
|
||||||
imt_t *imt;
|
imt_t *imt;
|
||||||
|
|
|
@ -62,10 +62,10 @@ void Host_ServerFrame (void);
|
||||||
void Host_InitCommands (void);
|
void Host_InitCommands (void);
|
||||||
void Host_Init (void);
|
void Host_Init (void);
|
||||||
void Host_Shutdown(void);
|
void Host_Shutdown(void);
|
||||||
void Host_Error (const char *error, ...) __attribute__((format(printf,1,2)));
|
void Host_Error (const char *error, ...) __attribute__((format(printf,1,2), noreturn));
|
||||||
void Host_EndGame (const char *message, ...) __attribute__((format(printf,1,2)));
|
void Host_EndGame (const char *message, ...) __attribute__((format(printf,1,2), noreturn));
|
||||||
void Host_Frame (float time);
|
void Host_Frame (float time);
|
||||||
void Host_Quit_f (void);
|
void Host_Quit_f (void) __attribute__((noreturn));
|
||||||
void Host_ClientCommands (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
void Host_ClientCommands (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
||||||
void Host_ShutdownServer (qboolean crash);
|
void Host_ShutdownServer (qboolean crash);
|
||||||
|
|
||||||
|
|
|
@ -255,7 +255,7 @@ void SV_DropClient (qboolean crash);
|
||||||
void SV_SendClientMessages (void);
|
void SV_SendClientMessages (void);
|
||||||
void SV_ClearDatagram (void);
|
void SV_ClearDatagram (void);
|
||||||
|
|
||||||
int SV_ModelIndex (const char *name);
|
int SV_ModelIndex (const char *name) __attribute__((pure));
|
||||||
|
|
||||||
void SV_SetIdealPitch (void);
|
void SV_SetIdealPitch (void);
|
||||||
|
|
||||||
|
@ -268,7 +268,7 @@ void SV_ClientPrintf (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
||||||
void SV_BroadcastPrintf (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
void SV_BroadcastPrintf (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
||||||
|
|
||||||
struct trace_s SV_PushEntity (edict_t *ent, vec3_t push);
|
struct trace_s SV_PushEntity (edict_t *ent, vec3_t push);
|
||||||
int SV_EntCanSupportJump (edict_t *ent);
|
int SV_EntCanSupportJump (edict_t *ent) __attribute__((pure));
|
||||||
int SV_FlyMove (edict_t *ent, float time, struct trace_s *steptrace);
|
int SV_FlyMove (edict_t *ent, float time, struct trace_s *steptrace);
|
||||||
void SV_CheckVelocity (edict_t *ent);
|
void SV_CheckVelocity (edict_t *ent);
|
||||||
qboolean SV_RunThink (edict_t *ent);
|
qboolean SV_RunThink (edict_t *ent);
|
||||||
|
|
|
@ -78,7 +78,7 @@ Host_Status_f (void)
|
||||||
int minutes;
|
int minutes;
|
||||||
int hours = 0;
|
int hours = 0;
|
||||||
int j;
|
int j;
|
||||||
void (*print) (const char *fmt, ...);
|
__attribute__((format(printf, 1, 2))) void (*print) (const char *fmt, ...);
|
||||||
|
|
||||||
if (cmd_source == src_command) {
|
if (cmd_source == src_command) {
|
||||||
if (!sv.active) {
|
if (!sv.active) {
|
||||||
|
|
|
@ -113,7 +113,7 @@ CL_NextDemo (void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
__attribute__((const)) int
|
||||||
CL_ReadFromServer (void)
|
CL_ReadFromServer (void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -156,7 +156,7 @@ S_UnblockSound (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin_t *console_client_PluginInfo (void);
|
plugin_t *console_client_PluginInfo (void);
|
||||||
plugin_t *
|
__attribute__((const)) plugin_t *
|
||||||
console_client_PluginInfo (void)
|
console_client_PluginInfo (void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1069,7 +1069,7 @@ PF_changeyaw (progs_t *pr)
|
||||||
#define MSG_ALL 2 // reliable to all
|
#define MSG_ALL 2 // reliable to all
|
||||||
#define MSG_INIT 3 // write to the init string
|
#define MSG_INIT 3 // write to the init string
|
||||||
|
|
||||||
static sizebuf_t *
|
static __attribute__((pure)) sizebuf_t *
|
||||||
WriteDest (progs_t *pr)
|
WriteDest (progs_t *pr)
|
||||||
{
|
{
|
||||||
int entnum;
|
int entnum;
|
||||||
|
|
|
@ -705,7 +705,7 @@ ctl_pretest_triggers (edict_t *touch, moveclip_t *clip)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static always_inline int
|
static always_inline __attribute__((pure)) int
|
||||||
ctl_pretest_other (edict_t *touch, moveclip_t *clip)
|
ctl_pretest_other (edict_t *touch, moveclip_t *clip)
|
||||||
{
|
{
|
||||||
if (SVfloat (touch, solid) == SOLID_NOT)
|
if (SVfloat (touch, solid) == SOLID_NOT)
|
||||||
|
|
|
@ -87,7 +87,7 @@ redirect_t qtv_redirected;
|
||||||
client_t *qtv_redirect_client;
|
client_t *qtv_redirect_client;
|
||||||
dstring_t outputbuf = {&dstring_default_mem};
|
dstring_t outputbuf = {&dstring_default_mem};
|
||||||
|
|
||||||
static void
|
static __attribute__((format(printf, 1, 0))) void
|
||||||
qtv_print (const char *fmt, va_list args)
|
qtv_print (const char *fmt, va_list args)
|
||||||
{
|
{
|
||||||
static int pending;
|
static int pending;
|
||||||
|
|
|
@ -43,9 +43,9 @@ extern int spec_track; // player# of who we are tracking
|
||||||
extern int ideal_track;
|
extern int ideal_track;
|
||||||
|
|
||||||
void Cam_Lock (int playernum);
|
void Cam_Lock (int playernum);
|
||||||
int Cam_TrackNum (void);
|
int Cam_TrackNum (void) __attribute__((pure));
|
||||||
qboolean Cam_DrawViewModel(void);
|
qboolean Cam_DrawViewModel(void) __attribute__((pure));
|
||||||
qboolean Cam_DrawPlayer(int playernum);
|
qboolean Cam_DrawPlayer(int playernum) __attribute__((pure));
|
||||||
void Cam_Track(usercmd_t *cmd);
|
void Cam_Track(usercmd_t *cmd);
|
||||||
void Cam_FinishMove(usercmd_t *cmd);
|
void Cam_FinishMove(usercmd_t *cmd);
|
||||||
void Cam_Reset(void);
|
void Cam_Reset(void);
|
||||||
|
|
|
@ -52,7 +52,7 @@ void CL_ParseServerMessage (void);
|
||||||
void CL_ParseClientdata (void);
|
void CL_ParseClientdata (void);
|
||||||
void CL_NewTranslation (int slot, struct skin_s *skin);
|
void CL_NewTranslation (int slot, struct skin_s *skin);
|
||||||
qboolean CL_CheckOrDownloadFile (const char *filename);
|
qboolean CL_CheckOrDownloadFile (const char *filename);
|
||||||
qboolean CL_IsUploading(void);
|
qboolean CL_IsUploading(void) __attribute__((pure));
|
||||||
void CL_NextUpload(void);
|
void CL_NextUpload(void);
|
||||||
void CL_FinishDownload (void);
|
void CL_FinishDownload (void);
|
||||||
void CL_FailDownload (void);
|
void CL_FailDownload (void);
|
||||||
|
|
|
@ -35,6 +35,6 @@ void CF_Close (int desc);
|
||||||
const char * CF_Read (int desc);
|
const char * CF_Read (int desc);
|
||||||
int CF_Write (int desc, const char *buf);
|
int CF_Write (int desc, const char *buf);
|
||||||
int CF_EOF (int desc);
|
int CF_EOF (int desc);
|
||||||
int CF_Quota (void);
|
int CF_Quota (void) __attribute__((pure));
|
||||||
|
|
||||||
#endif // _CRUDEFILE_H
|
#endif // _CRUDEFILE_H
|
||||||
|
|
|
@ -51,8 +51,8 @@ void Host_ServerFrame (void);
|
||||||
void Host_InitCommands (void);
|
void Host_InitCommands (void);
|
||||||
void Host_Init (void);
|
void Host_Init (void);
|
||||||
void Host_Shutdown(void);
|
void Host_Shutdown(void);
|
||||||
void Host_Error (const char *error, ...) __attribute__((format(printf,1,2)));
|
void Host_Error (const char *error, ...) __attribute__((format(printf,1,2), noreturn));
|
||||||
void Host_EndGame (const char *message, ...) __attribute__((format(printf,1,2)));
|
void Host_EndGame (const char *message, ...) __attribute__((format(printf,1,2), noreturn));
|
||||||
void Host_Frame (float time);
|
void Host_Frame (float time);
|
||||||
void Host_Quit_f (void);
|
void Host_Quit_f (void);
|
||||||
void Host_ClientCommands (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
void Host_ClientCommands (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
||||||
|
|
|
@ -492,11 +492,11 @@ void SV_Shutdown (void);
|
||||||
void SV_Frame (float time);
|
void SV_Frame (float time);
|
||||||
void SV_FinalMessage (const char *message);
|
void SV_FinalMessage (const char *message);
|
||||||
void SV_DropClient (client_t *drop);
|
void SV_DropClient (client_t *drop);
|
||||||
int SV_CalcPing (client_t *cl);
|
int SV_CalcPing (client_t *cl) __attribute__((pure));
|
||||||
void SV_FullClientUpdate (client_t *client, sizebuf_t *buf);
|
void SV_FullClientUpdate (client_t *client, sizebuf_t *buf);
|
||||||
void SV_FullClientUpdateToClient (client_t *client, backbuf_t *backbuf);
|
void SV_FullClientUpdateToClient (client_t *client, backbuf_t *backbuf);
|
||||||
|
|
||||||
int SV_ModelIndex (const char *name);
|
int SV_ModelIndex (const char *name) __attribute__((pure));
|
||||||
|
|
||||||
qboolean SV_CheckBottom (struct edict_s *ent);
|
qboolean SV_CheckBottom (struct edict_s *ent);
|
||||||
qboolean SV_movestep (struct edict_s *ent, const vec3_t move,
|
qboolean SV_movestep (struct edict_s *ent, const vec3_t move,
|
||||||
|
@ -549,12 +549,12 @@ struct trace_s;
|
||||||
int SV_FlyMove (struct edict_s *ent, float time, struct trace_s *steptrace);
|
int SV_FlyMove (struct edict_s *ent, float time, struct trace_s *steptrace);
|
||||||
struct trace_s SV_PushEntity (struct edict_s *ent, vec3_t push,
|
struct trace_s SV_PushEntity (struct edict_s *ent, vec3_t push,
|
||||||
unsigned traceflags);
|
unsigned traceflags);
|
||||||
int SV_EntCanSupportJump (struct edict_s *ent);
|
int SV_EntCanSupportJump (struct edict_s *ent) __attribute__((pure));
|
||||||
|
|
||||||
//
|
//
|
||||||
// sv_send.c
|
// sv_send.c
|
||||||
//
|
//
|
||||||
void SV_Print (const char *fmt, va_list args);
|
void SV_Print (const char *fmt, va_list args) __attribute__((format(printf, 1, 0)));
|
||||||
void SV_Printf (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
void SV_Printf (const char *fmt, ...) __attribute__((format(printf,1,2)));
|
||||||
void SV_SendClientMessages (void);
|
void SV_SendClientMessages (void);
|
||||||
void SV_GetStats (struct edict_s *ent, int spectator, int stats[]);
|
void SV_GetStats (struct edict_s *ent, int spectator, int stats[]);
|
||||||
|
@ -611,7 +611,7 @@ extern struct dstring_s outputbuf;
|
||||||
// sv_ccmds.c
|
// sv_ccmds.c
|
||||||
//
|
//
|
||||||
void SV_Status_f (void);
|
void SV_Status_f (void);
|
||||||
const char *SV_Current_Map (void);
|
const char *SV_Current_Map (void) __attribute__((pure));
|
||||||
void SV_SetLocalinfo (const char *key, const char *value);
|
void SV_SetLocalinfo (const char *key, const char *value);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -42,12 +42,12 @@ recorder_t *SVR_AddUser (void (*writer)(void *, struct sizebuf_s *, int),
|
||||||
int demo, void *user);
|
int demo, void *user);
|
||||||
void SVR_RemoveUser (recorder_t *r);
|
void SVR_RemoveUser (recorder_t *r);
|
||||||
struct sizebuf_s *SVR_WriteBegin (byte type, int to, int size);
|
struct sizebuf_s *SVR_WriteBegin (byte type, int to, int size);
|
||||||
struct sizebuf_s *SVR_Datagram (void);
|
struct sizebuf_s *SVR_Datagram (void) __attribute__((const));
|
||||||
void SVR_ForceFrame (void);
|
void SVR_ForceFrame (void);
|
||||||
void SVR_Pause (recorder_t *r);
|
void SVR_Pause (recorder_t *r);
|
||||||
void SVR_Continue (recorder_t *r);
|
void SVR_Continue (recorder_t *r);
|
||||||
void SVR_SetDelta (recorder_t *r, int delta, int in_frame);
|
void SVR_SetDelta (recorder_t *r, int delta, int in_frame);
|
||||||
void SVR_SendMessages (void);
|
void SVR_SendMessages (void);
|
||||||
int SVR_NumRecorders (void);
|
int SVR_NumRecorders (void) __attribute__((pure));
|
||||||
|
|
||||||
#endif//__sv_recorder_h
|
#endif//__sv_recorder_h
|
||||||
|
|
|
@ -314,7 +314,7 @@ SL_Shutdown (void)
|
||||||
SL_Del_All (all_slist);
|
SL_Del_All (all_slist);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static __attribute__((pure)) char *
|
||||||
gettokstart (char *str, int req, char delim)
|
gettokstart (char *str, int req, char delim)
|
||||||
{
|
{
|
||||||
char *start = str;
|
char *start = str;
|
||||||
|
@ -340,7 +340,7 @@ gettokstart (char *str, int req, char delim)
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
gettoklen (char *str, int req, char delim)
|
gettoklen (char *str, int req, char delim)
|
||||||
{
|
{
|
||||||
char *start = 0;
|
char *start = 0;
|
||||||
|
|
|
@ -257,7 +257,7 @@ SV_Shutdown (void)
|
||||||
Sends a datagram to all the clients informing them of the server crash,
|
Sends a datagram to all the clients informing them of the server crash,
|
||||||
then exits
|
then exits
|
||||||
*/
|
*/
|
||||||
static void
|
static __attribute__((format(printf, 1, 0))) void
|
||||||
SV_Error (const char *error, va_list argptr)
|
SV_Error (const char *error, va_list argptr)
|
||||||
{
|
{
|
||||||
static qboolean inerror = false;
|
static qboolean inerror = false;
|
||||||
|
@ -1206,7 +1206,7 @@ SV_MaskIPTrim (byte *ip, int mask)
|
||||||
}
|
}
|
||||||
|
|
||||||
// assumes b has already been masked
|
// assumes b has already been masked
|
||||||
static inline qboolean
|
static inline __attribute__((pure)) qboolean
|
||||||
SV_MaskIPCompare (byte *a, byte *b, int mask)
|
SV_MaskIPCompare (byte *a, byte *b, int mask)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -1061,7 +1061,7 @@ PF_changeyaw (progs_t *pr)
|
||||||
#define MSG_INIT 3 // write to the init string
|
#define MSG_INIT 3 // write to the init string
|
||||||
#define MSG_MULTICAST 4 // for multicast ()
|
#define MSG_MULTICAST 4 // for multicast ()
|
||||||
|
|
||||||
static sizebuf_t *
|
static __attribute__((pure)) sizebuf_t *
|
||||||
WriteDest (progs_t *pr)
|
WriteDest (progs_t *pr)
|
||||||
{
|
{
|
||||||
int dest;
|
int dest;
|
||||||
|
@ -1094,7 +1094,7 @@ WriteDest (progs_t *pr)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static client_t *
|
static __attribute__((pure)) client_t *
|
||||||
Write_GetClient (progs_t *pr)
|
Write_GetClient (progs_t *pr)
|
||||||
{
|
{
|
||||||
edict_t *ent;
|
edict_t *ent;
|
||||||
|
|
|
@ -677,7 +677,7 @@ SV_ClipMoveToEntity (edict_t *touched, const vec3_t start,
|
||||||
return trace;
|
return trace;
|
||||||
}
|
}
|
||||||
|
|
||||||
static always_inline int
|
static always_inline __attribute__((pure)) int
|
||||||
ctl_pretest_everything (edict_t *touch, moveclip_t *clip)
|
ctl_pretest_everything (edict_t *touch, moveclip_t *clip)
|
||||||
{
|
{
|
||||||
if (touch->free)
|
if (touch->free)
|
||||||
|
@ -705,7 +705,7 @@ ctl_pretest_triggers (edict_t *touch, moveclip_t *clip)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static always_inline int
|
static always_inline __attribute__((pure)) int
|
||||||
ctl_pretest_other (edict_t *touch, moveclip_t *clip)
|
ctl_pretest_other (edict_t *touch, moveclip_t *clip)
|
||||||
{
|
{
|
||||||
if (SVfloat (touch, solid) == SOLID_NOT)
|
if (SVfloat (touch, solid) == SOLID_NOT)
|
||||||
|
|
|
@ -69,7 +69,7 @@ brushset_t *Brush_LoadEntity (entity_t *ent, int hullnum);
|
||||||
|
|
||||||
\param normal Must be canonical.
|
\param normal Must be canonical.
|
||||||
*/
|
*/
|
||||||
int PlaneTypeForNormal (const vec3_t normal);
|
int PlaneTypeForNormal (const vec3_t normal) __attribute__((pure));
|
||||||
|
|
||||||
/** Make the plane canonical.
|
/** Make the plane canonical.
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ void PrintEntity (const entity_t *ent);
|
||||||
\return The value for the key, or the empty string if the key
|
\return The value for the key, or the empty string if the key
|
||||||
does not exist in this entity.
|
does not exist in this entity.
|
||||||
*/
|
*/
|
||||||
const char *ValueForKey (const entity_t *ent, const char *key);
|
const char *ValueForKey (const entity_t *ent, const char *key) __attribute__((pure));
|
||||||
|
|
||||||
/** Set the value of the entity's key.
|
/** Set the value of the entity's key.
|
||||||
If the key does not exist, one will be added.
|
If the key does not exist, one will be added.
|
||||||
|
|
|
@ -41,7 +41,7 @@ int outleafs;
|
||||||
\param point The point's location.
|
\param point The point's location.
|
||||||
\return The leaf node in which the point is.
|
\return The leaf node in which the point is.
|
||||||
*/
|
*/
|
||||||
static node_t *
|
static __attribute__((pure)) node_t *
|
||||||
PointInLeaf (node_t *node, const vec3_t point)
|
PointInLeaf (node_t *node, const vec3_t point)
|
||||||
{
|
{
|
||||||
vec_t d;
|
vec_t d;
|
||||||
|
|
|
@ -422,7 +422,7 @@ int num_realleafs;
|
||||||
\param cont The contents for which to check.
|
\param cont The contents for which to check.
|
||||||
\return 1 if the node has the specified contents, otherwise 0.
|
\return 1 if the node has the specified contents, otherwise 0.
|
||||||
*/
|
*/
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
HasContents (const node_t *n, int cont)
|
HasContents (const node_t *n, int cont)
|
||||||
{
|
{
|
||||||
if (n->contents == cont)
|
if (n->contents == cont)
|
||||||
|
@ -439,7 +439,7 @@ HasContents (const node_t *n, int cont)
|
||||||
\param n1 The first node to check.
|
\param n1 The first node to check.
|
||||||
\param n2 The second node to check.
|
\param n2 The second node to check.
|
||||||
*/
|
*/
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
ShareContents (const node_t *n1, const node_t *n2)
|
ShareContents (const node_t *n1, const node_t *n2)
|
||||||
{
|
{
|
||||||
if (n1->contents) {
|
if (n1->contents) {
|
||||||
|
@ -461,7 +461,7 @@ ShareContents (const node_t *n1, const node_t *n2)
|
||||||
\param n1 The first node to check.
|
\param n1 The first node to check.
|
||||||
\param n2 The second node to check.
|
\param n2 The second node to check.
|
||||||
*/
|
*/
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
SameContents (const node_t *n1, const node_t *n2)
|
SameContents (const node_t *n1, const node_t *n2)
|
||||||
{
|
{
|
||||||
if (n1->contents == CONTENTS_SOLID || n2->contents == CONTENTS_SOLID)
|
if (n1->contents == CONTENTS_SOLID || n2->contents == CONTENTS_SOLID)
|
||||||
|
@ -471,7 +471,7 @@ SameContents (const node_t *n1, const node_t *n2)
|
||||||
if (options.watervis) //FIXME be more picky?
|
if (options.watervis) //FIXME be more picky?
|
||||||
return 1;
|
return 1;
|
||||||
if (n1->detail && n2->detail)
|
if (n1->detail && n2->detail)
|
||||||
ShareContents (n1, n2);
|
return ShareContents (n1, n2);
|
||||||
if (n1->detail)
|
if (n1->detail)
|
||||||
return HasContents (n1, n2->contents);
|
return HasContents (n1, n2->contents);
|
||||||
if (n2->detail)
|
if (n2->detail)
|
||||||
|
|
|
@ -121,7 +121,7 @@ FaceSide (const face_t *in, const plane_t *split)
|
||||||
\param maxs The maximum coordinate of the boundiing box.
|
\param maxs The maximum coordinate of the boundiing box.
|
||||||
\return The chosen surface.
|
\return The chosen surface.
|
||||||
*/
|
*/
|
||||||
static surface_t *
|
static __attribute__((pure)) surface_t *
|
||||||
ChooseMidPlaneFromList (surface_t *surfaces,
|
ChooseMidPlaneFromList (surface_t *surfaces,
|
||||||
const vec3_t mins, const vec3_t maxs)
|
const vec3_t mins, const vec3_t maxs)
|
||||||
{
|
{
|
||||||
|
@ -186,7 +186,7 @@ ChooseMidPlaneFromList (surface_t *surfaces,
|
||||||
\return The chosen surface, or NULL if a suitable surface could
|
\return The chosen surface, or NULL if a suitable surface could
|
||||||
not be found.
|
not be found.
|
||||||
*/
|
*/
|
||||||
static surface_t *
|
static __attribute__((pure)) surface_t *
|
||||||
ChoosePlaneFromList (surface_t *surfaces, const vec3_t mins, const vec3_t maxs,
|
ChoosePlaneFromList (surface_t *surfaces, const vec3_t mins, const vec3_t maxs,
|
||||||
qboolean usefloors, qboolean usedetail)
|
qboolean usefloors, qboolean usedetail)
|
||||||
{
|
{
|
||||||
|
|
|
@ -107,13 +107,13 @@ struct expr_s;
|
||||||
struct method_s;
|
struct method_s;
|
||||||
struct symbol_s;
|
struct symbol_s;
|
||||||
|
|
||||||
int obj_is_id (const struct type_s *type);
|
int obj_is_id (const struct type_s *type) __attribute__((pure));
|
||||||
int obj_is_class (const struct type_s *type);
|
int obj_is_class (const struct type_s *type) __attribute__((pure));
|
||||||
int obj_is_Class (const struct type_s *type);
|
int obj_is_Class (const struct type_s *type) __attribute__((pure));
|
||||||
int obj_is_classptr (const struct type_s *type);
|
int obj_is_classptr (const struct type_s *type) __attribute__((pure));
|
||||||
int obj_types_assignable (const struct type_s *dst, const struct type_s *src);
|
int obj_types_assignable (const struct type_s *dst, const struct type_s *src);
|
||||||
|
|
||||||
class_t *extract_class (class_type_t *class_type);
|
class_t *extract_class (class_type_t *class_type) __attribute__((pure));
|
||||||
const char *get_class_name (class_type_t *class_type, int pretty);
|
const char *get_class_name (class_type_t *class_type, int pretty);
|
||||||
struct symbol_s *class_symbol (class_type_t *class_type, int external);
|
struct symbol_s *class_symbol (class_type_t *class_type, int external);
|
||||||
void class_init (void);
|
void class_init (void);
|
||||||
|
@ -125,7 +125,7 @@ void class_add_ivars (class_t *class, struct symtab_s *ivars);
|
||||||
void class_check_ivars (class_t *class, struct symtab_s *ivars);
|
void class_check_ivars (class_t *class, struct symtab_s *ivars);
|
||||||
void class_begin (class_type_t *class_type);
|
void class_begin (class_type_t *class_type);
|
||||||
void class_finish (class_type_t *class_type);
|
void class_finish (class_type_t *class_type);
|
||||||
int class_access (class_type_t *current_class, class_t *class);
|
int class_access (class_type_t *current_class, class_t *class) __attribute__((pure));
|
||||||
struct symbol_s *class_find_ivar (class_t *class, int vis, const char *name);
|
struct symbol_s *class_find_ivar (class_t *class, int vis, const char *name);
|
||||||
struct symtab_s *class_ivar_scope (class_type_t *class_type,
|
struct symtab_s *class_ivar_scope (class_type_t *class_type,
|
||||||
struct symtab_s *parent);
|
struct symtab_s *parent);
|
||||||
|
@ -153,8 +153,8 @@ void protocol_add_protocols (protocol_t *protocol, protocollist_t *protocols);
|
||||||
struct def_s *protocol_def (protocol_t *protocol);
|
struct def_s *protocol_def (protocol_t *protocol);
|
||||||
protocollist_t *new_protocol_list (void);
|
protocollist_t *new_protocol_list (void);
|
||||||
protocollist_t *add_protocol (protocollist_t *protocollist, const char *name);
|
protocollist_t *add_protocol (protocollist_t *protocollist, const char *name);
|
||||||
int procollist_find_protocol (protocollist_t *protocollist, protocol_t *proto);
|
int procollist_find_protocol (protocollist_t *protocollist, protocol_t *proto) __attribute__((pure));
|
||||||
int compare_protocols (protocollist_t *protos1, protocollist_t *protos2);
|
int compare_protocols (protocollist_t *protos1, protocollist_t *protos2) __attribute__((pure));
|
||||||
void print_protocollist (struct dstring_s *dstr, protocollist_t *protocollist);
|
void print_protocollist (struct dstring_s *dstr, protocollist_t *protocollist);
|
||||||
struct def_s *emit_protocol (protocol_t *protocol);
|
struct def_s *emit_protocol (protocol_t *protocol);
|
||||||
struct def_s *emit_protocol_list (protocollist_t *protocols, const char *name);
|
struct def_s *emit_protocol_list (protocollist_t *protocols, const char *name);
|
||||||
|
|
|
@ -254,7 +254,7 @@ void initialize_def (struct symbol_s *sym, struct type_s *type,
|
||||||
\return 1 if the defs overlap, 2 if \a d1 fully overlaps \a d2,
|
\return 1 if the defs overlap, 2 if \a d1 fully overlaps \a d2,
|
||||||
otherwise 0.
|
otherwise 0.
|
||||||
*/
|
*/
|
||||||
int def_overlap (def_t *d1, def_t *d2);
|
int def_overlap (def_t *d1, def_t *d2) __attribute__((pure));
|
||||||
|
|
||||||
/** Convenience function for obtaining a def's actual offset.
|
/** Convenience function for obtaining a def's actual offset.
|
||||||
|
|
||||||
|
@ -263,7 +263,7 @@ int def_overlap (def_t *d1, def_t *d2);
|
||||||
\param def The def of which to obtain the offset. May be an alias def.
|
\param def The def of which to obtain the offset. May be an alias def.
|
||||||
\return The actual offset of the def in the def's defspace.
|
\return The actual offset of the def in the def's defspace.
|
||||||
*/
|
*/
|
||||||
int def_offset (def_t *def);
|
int def_offset (def_t *def) __attribute__((pure));
|
||||||
|
|
||||||
/** Convenience function for obtaining a def's size.
|
/** Convenience function for obtaining a def's size.
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ int def_offset (def_t *def);
|
||||||
\param def The def of which to obtain the size.
|
\param def The def of which to obtain the size.
|
||||||
\return The size of the def.
|
\return The size of the def.
|
||||||
*/
|
*/
|
||||||
int def_size (def_t *def);
|
int def_size (def_t *def) __attribute__((pure));
|
||||||
|
|
||||||
/** Visit all defs that alias the given def, including itself.
|
/** Visit all defs that alias the given def, including itself.
|
||||||
|
|
||||||
|
|
|
@ -384,7 +384,7 @@ expr_t *new_name_expr (const char *name);
|
||||||
(expr_t::e::string_val).
|
(expr_t::e::string_val).
|
||||||
*/
|
*/
|
||||||
expr_t *new_string_expr (const char *string_val);
|
expr_t *new_string_expr (const char *string_val);
|
||||||
const char *expr_string (expr_t *e);
|
const char *expr_string (expr_t *e) __attribute__((pure));
|
||||||
|
|
||||||
/** Create a new float constant expression node.
|
/** Create a new float constant expression node.
|
||||||
|
|
||||||
|
@ -393,7 +393,7 @@ const char *expr_string (expr_t *e);
|
||||||
(expr_t::e::float_val).
|
(expr_t::e::float_val).
|
||||||
*/
|
*/
|
||||||
expr_t *new_float_expr (float float_val);
|
expr_t *new_float_expr (float float_val);
|
||||||
float expr_float (expr_t *e);
|
float expr_float (expr_t *e) __attribute__((pure));
|
||||||
|
|
||||||
/** Create a new vector constant expression node.
|
/** Create a new vector constant expression node.
|
||||||
|
|
||||||
|
@ -402,7 +402,7 @@ float expr_float (expr_t *e);
|
||||||
(expr_t::e::vector_val).
|
(expr_t::e::vector_val).
|
||||||
*/
|
*/
|
||||||
expr_t *new_vector_expr (const float *vector_val);
|
expr_t *new_vector_expr (const float *vector_val);
|
||||||
const float *expr_vector (expr_t *e);
|
const float *expr_vector (expr_t *e) __attribute__((pure));
|
||||||
expr_t *new_vector_list (expr_t *e);
|
expr_t *new_vector_list (expr_t *e);
|
||||||
|
|
||||||
/** Create a new entity constant expression node.
|
/** Create a new entity constant expression node.
|
||||||
|
@ -449,7 +449,7 @@ expr_t *new_pointer_expr (int val, struct type_s *type, struct def_s *def);
|
||||||
(expr_t::e::quaternion_val).
|
(expr_t::e::quaternion_val).
|
||||||
*/
|
*/
|
||||||
expr_t *new_quaternion_expr (const float *quaternion_val);
|
expr_t *new_quaternion_expr (const float *quaternion_val);
|
||||||
const float *expr_quaternion (expr_t *e);
|
const float *expr_quaternion (expr_t *e) __attribute__((pure));
|
||||||
|
|
||||||
/** Create a new integer constant expression node.
|
/** Create a new integer constant expression node.
|
||||||
|
|
||||||
|
@ -458,7 +458,7 @@ const float *expr_quaternion (expr_t *e);
|
||||||
(expr_t::e::integer_val).
|
(expr_t::e::integer_val).
|
||||||
*/
|
*/
|
||||||
expr_t *new_integer_expr (int integer_val);
|
expr_t *new_integer_expr (int integer_val);
|
||||||
int expr_integer (expr_t *e);
|
int expr_integer (expr_t *e) __attribute__((pure));
|
||||||
|
|
||||||
/** Create a new integer constant expression node.
|
/** Create a new integer constant expression node.
|
||||||
|
|
||||||
|
@ -467,7 +467,7 @@ int expr_integer (expr_t *e);
|
||||||
(expr_t::e::integer_val).
|
(expr_t::e::integer_val).
|
||||||
*/
|
*/
|
||||||
expr_t *new_uinteger_expr (unsigned uinteger_val);
|
expr_t *new_uinteger_expr (unsigned uinteger_val);
|
||||||
unsigned expr_uinteger (expr_t *e);
|
unsigned expr_uinteger (expr_t *e) __attribute__((pure));
|
||||||
|
|
||||||
/** Create a new short constant expression node.
|
/** Create a new short constant expression node.
|
||||||
|
|
||||||
|
@ -476,14 +476,14 @@ unsigned expr_uinteger (expr_t *e);
|
||||||
(expr_t::e::short_val).
|
(expr_t::e::short_val).
|
||||||
*/
|
*/
|
||||||
expr_t *new_short_expr (short short_val);
|
expr_t *new_short_expr (short short_val);
|
||||||
short expr_short (expr_t *e);
|
short expr_short (expr_t *e) __attribute__((pure));
|
||||||
|
|
||||||
/** Check of the expression refers to a constant value.
|
/** Check of the expression refers to a constant value.
|
||||||
|
|
||||||
\param e The expression to check.
|
\param e The expression to check.
|
||||||
\return True if the expression is constant.
|
\return True if the expression is constant.
|
||||||
*/
|
*/
|
||||||
int is_constant (expr_t *e);
|
int is_constant (expr_t *e) __attribute__((pure));
|
||||||
|
|
||||||
/** Return a value expression representing the constant stored in \a e.
|
/** Return a value expression representing the constant stored in \a e.
|
||||||
|
|
||||||
|
@ -500,30 +500,30 @@ expr_t *constant_expr (expr_t *e);
|
||||||
\param op The op-code to check.
|
\param op The op-code to check.
|
||||||
\return True if the op-code is a comparison operator.
|
\return True if the op-code is a comparison operator.
|
||||||
*/
|
*/
|
||||||
int is_compare (int op);
|
int is_compare (int op) __attribute__((const));
|
||||||
|
|
||||||
/** Check if the op-code is a math operator.
|
/** Check if the op-code is a math operator.
|
||||||
|
|
||||||
\param op The op-code to check.
|
\param op The op-code to check.
|
||||||
\return True if the op-code is a math operator.
|
\return True if the op-code is a math operator.
|
||||||
*/
|
*/
|
||||||
int is_math_op (int op);
|
int is_math_op (int op) __attribute__((const));
|
||||||
|
|
||||||
/** Check if the op-code is a logic operator.
|
/** Check if the op-code is a logic operator.
|
||||||
|
|
||||||
\param op The op-code to check.
|
\param op The op-code to check.
|
||||||
\return True if the op-code is a logic operator.
|
\return True if the op-code is a logic operator.
|
||||||
*/
|
*/
|
||||||
int is_logic (int op);
|
int is_logic (int op) __attribute__((const));
|
||||||
|
|
||||||
int has_function_call (expr_t *e);
|
int has_function_call (expr_t *e) __attribute__((pure));
|
||||||
|
|
||||||
int is_string_val (expr_t *e);
|
int is_string_val (expr_t *e) __attribute__((pure));
|
||||||
int is_float_val (expr_t *e);
|
int is_float_val (expr_t *e) __attribute__((pure));
|
||||||
int is_vector_val (expr_t *e);
|
int is_vector_val (expr_t *e) __attribute__((pure));
|
||||||
int is_quaternion_val (expr_t *e);
|
int is_quaternion_val (expr_t *e) __attribute__((pure));
|
||||||
int is_integer_val (expr_t *e);
|
int is_integer_val (expr_t *e) __attribute__((pure));
|
||||||
int is_short_val (expr_t *e);
|
int is_short_val (expr_t *e) __attribute__((pure));
|
||||||
|
|
||||||
/** Create a reference to the global <code>.self</code> entity variable.
|
/** Create a reference to the global <code>.self</code> entity variable.
|
||||||
|
|
||||||
|
@ -627,7 +627,7 @@ expr_t *think_expr (struct symbol_s *think_sym);
|
||||||
expr_t *assign_expr (expr_t *e1, expr_t *e2);
|
expr_t *assign_expr (expr_t *e1, expr_t *e2);
|
||||||
expr_t *cast_expr (struct type_s *t, expr_t *e);
|
expr_t *cast_expr (struct type_s *t, expr_t *e);
|
||||||
|
|
||||||
const char *get_op_string (int op);
|
const char *get_op_string (int op) __attribute__((const));
|
||||||
|
|
||||||
struct keywordarg_s;
|
struct keywordarg_s;
|
||||||
struct class_type_s;
|
struct class_type_s;
|
||||||
|
|
|
@ -107,7 +107,7 @@ extern pr_info_t pr;
|
||||||
|
|
||||||
#define POINTER_OFS(s,p) ((pr_type_t *) (p) - (s)->data)
|
#define POINTER_OFS(s,p) ((pr_type_t *) (p) - (s)->data)
|
||||||
|
|
||||||
const char *strip_path (const char *filename);
|
const char *strip_path (const char *filename) __attribute__((pure));
|
||||||
|
|
||||||
extern FILE *qc_yyin;
|
extern FILE *qc_yyin;
|
||||||
extern FILE *qp_yyin;
|
extern FILE *qp_yyin;
|
||||||
|
|
|
@ -111,7 +111,7 @@ struct expr_s;
|
||||||
struct type_s;
|
struct type_s;
|
||||||
struct dstring_s;
|
struct dstring_s;
|
||||||
|
|
||||||
const char *optype_str (op_type_e type);
|
const char *optype_str (op_type_e type) __attribute__((const));
|
||||||
|
|
||||||
operand_t *def_operand (struct def_s *def, struct type_s *type);
|
operand_t *def_operand (struct def_s *def, struct type_s *type);
|
||||||
operand_t *value_operand (struct ex_value_s *value);
|
operand_t *value_operand (struct ex_value_s *value);
|
||||||
|
@ -122,12 +122,12 @@ void free_operand (operand_t *op);
|
||||||
sblock_t *new_sblock (void);
|
sblock_t *new_sblock (void);
|
||||||
statement_t *new_statement (st_type_t type, const char *opcode,
|
statement_t *new_statement (st_type_t type, const char *opcode,
|
||||||
struct expr_s *expr);
|
struct expr_s *expr);
|
||||||
int statement_is_cond (statement_t *s);
|
int statement_is_cond (statement_t *s) __attribute__((pure));
|
||||||
int statement_is_goto (statement_t *s);
|
int statement_is_goto (statement_t *s) __attribute__((pure));
|
||||||
int statement_is_jumpb (statement_t *s);
|
int statement_is_jumpb (statement_t *s) __attribute__((pure));
|
||||||
int statement_is_call (statement_t *s);
|
int statement_is_call (statement_t *s) __attribute__((pure));
|
||||||
int statement_is_return (statement_t *s);
|
int statement_is_return (statement_t *s) __attribute__((pure));
|
||||||
sblock_t *statement_get_target (statement_t *s);
|
sblock_t *statement_get_target (statement_t *s) __attribute__((pure));
|
||||||
sblock_t **statement_get_targetlist (statement_t *s);
|
sblock_t **statement_get_targetlist (statement_t *s);
|
||||||
void sblock_add_statement (sblock_t *sblock, statement_t *statement);
|
void sblock_add_statement (sblock_t *sblock, statement_t *statement);
|
||||||
sblock_t *make_statements (struct expr_s *expr);
|
sblock_t *make_statements (struct expr_s *expr);
|
||||||
|
|
|
@ -92,7 +92,7 @@ typedef struct symtab_s {
|
||||||
struct defspace_s *space; ///< storage for vars in scope symtabs
|
struct defspace_s *space; ///< storage for vars in scope symtabs
|
||||||
} symtab_t;
|
} symtab_t;
|
||||||
|
|
||||||
const char *symtype_str (sy_type_e type);
|
const char *symtype_str (sy_type_e type) __attribute__((const));
|
||||||
|
|
||||||
/** Create a new, empty named symbol.
|
/** Create a new, empty named symbol.
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ extern struct symtab_s *quaternion_struct;
|
||||||
|
|
||||||
struct dstring_s;
|
struct dstring_s;
|
||||||
|
|
||||||
etype_t low_level_type (type_t *type);
|
etype_t low_level_type (type_t *type) __attribute__((pure));
|
||||||
type_t *new_type (void);
|
type_t *new_type (void);
|
||||||
void free_type (type_t *type);
|
void free_type (type_t *type);
|
||||||
void chain_type (type_t *type);
|
void chain_type (type_t *type);
|
||||||
|
@ -150,17 +150,17 @@ void print_type (const type_t *type);
|
||||||
const char *encode_params (const type_t *type);
|
const char *encode_params (const type_t *type);
|
||||||
void encode_type (struct dstring_s *encoding, const type_t *type);
|
void encode_type (struct dstring_s *encoding, const type_t *type);
|
||||||
const char *type_get_encoding (const type_t *type);
|
const char *type_get_encoding (const type_t *type);
|
||||||
int is_void (const type_t *type);
|
int is_void (const type_t *type) __attribute__((pure));
|
||||||
int is_enum (const type_t *type);
|
int is_enum (const type_t *type) __attribute__((pure));
|
||||||
int is_integral (const type_t *type);
|
int is_integral (const type_t *type) __attribute__((pure));
|
||||||
int is_float (const type_t *type);
|
int is_float (const type_t *type) __attribute__((pure));
|
||||||
int is_scalar (const type_t *type);
|
int is_scalar (const type_t *type) __attribute__((pure));
|
||||||
int is_math (const type_t *type);
|
int is_math (const type_t *type) __attribute__((pure));
|
||||||
int is_pointer (const type_t *type);
|
int is_pointer (const type_t *type) __attribute__((pure));
|
||||||
int is_struct (const type_t *type);
|
int is_struct (const type_t *type) __attribute__((pure));
|
||||||
int is_array (const type_t *type);
|
int is_array (const type_t *type) __attribute__((pure));
|
||||||
int type_assignable (const type_t *dst, const type_t *src);
|
int type_assignable (const type_t *dst, const type_t *src);
|
||||||
int type_size (const type_t *type);
|
int type_size (const type_t *type) __attribute__((pure));
|
||||||
|
|
||||||
void init_types (void);
|
void init_types (void);
|
||||||
void chain_initial_types (void);
|
void chain_initial_types (void);
|
||||||
|
|
|
@ -281,7 +281,7 @@ obj_classname (const type_t *type)
|
||||||
return str->str;
|
return str->str;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
category_implements (category_t *cat, protocol_t *protocol)
|
category_implements (category_t *cat, protocol_t *protocol)
|
||||||
{
|
{
|
||||||
for (; cat; cat = cat->next) {
|
for (; cat; cat = cat->next) {
|
||||||
|
|
|
@ -60,7 +60,7 @@ cf_cast_expr (type_t *type, expr_t *e)
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static __attribute__((pure)) int
|
||||||
valid_op (int op, int *valid_ops)
|
valid_op (int op, int *valid_ops)
|
||||||
{
|
{
|
||||||
while (*valid_ops && op != *valid_ops)
|
while (*valid_ops && op != *valid_ops)
|
||||||
|
|
|
@ -208,7 +208,7 @@ leaf_node (dag_t *dag, operand_t *op, expr_t *expr)
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
static dagnode_t *
|
static __attribute__((pure)) dagnode_t *
|
||||||
dag_node (operand_t *op)
|
dag_node (operand_t *op)
|
||||||
{
|
{
|
||||||
def_t *def;
|
def_t *def;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue