mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 15:22:04 +00:00
[qfcc] Use a union to manage function attributes
Same idea as the specifiers, but makes checking function types are the same much easier.
This commit is contained in:
parent
f153e87daa
commit
8cc6cbc157
3 changed files with 8 additions and 3 deletions
|
@ -39,7 +39,12 @@ typedef struct ty_func_s {
|
|||
struct type_s *type;
|
||||
int num_params;
|
||||
struct type_s **param_types;
|
||||
int no_va_list; ///< don't inject va_list for ... function
|
||||
union {
|
||||
struct {
|
||||
unsigned no_va_list:1;///< don't inject va_list for ... function
|
||||
};
|
||||
unsigned attribute_bits;
|
||||
};
|
||||
} ty_func_t;
|
||||
|
||||
typedef struct ty_fldptr_s {
|
||||
|
|
|
@ -90,7 +90,7 @@ type_t type_IMP = {
|
|||
.alignment = 1,
|
||||
.width = 1,
|
||||
.meta = ty_basic,
|
||||
{{&type_id, -3, IMP_params, 1}},
|
||||
{{&type_id, -3, IMP_params, .no_va_list = 1}},
|
||||
};
|
||||
type_t type_super = {
|
||||
.type = ev_invalid,
|
||||
|
|
|
@ -379,7 +379,7 @@ types_same (type_t *a, type_t *b)
|
|||
case ev_func:
|
||||
if (a->t.func.type != b->t.func.type
|
||||
|| a->t.func.num_params != b->t.func.num_params
|
||||
|| a->t.func.no_va_list != b->t.func.no_va_list)
|
||||
|| a->t.func.attribute_bits != b->t.func.attribute_bits)
|
||||
return 0;
|
||||
count = a->t.func.num_params;
|
||||
if (count < 0)
|
||||
|
|
Loading…
Reference in a new issue