quakeforge/tools/qfcc/source
Bill Currie 6253d775e6 [qfcc] Adjust ivar offsets to preserve alignment
As a class's ivars are built up by inheritance, but with only that
class's ivars in the symbol table, is is necessary to include an offset
based on the super class's ivars in order to ensure alignments are
respected. This is achieved via the new `base` parameter to
build_struct(), which is used to offset the current size while
calculating the aligned offset of the symbols. The parameter is ignored
for unions, as they always start at 0. The ivars for the current class
still have a base offset of 0 until they are actually added to the
class.

Fixes #29
2022-07-31 17:15:47 +09:00
..
.indent.pro indent whitespace cleanup. not perfect, but a bit more consistent now 2001-12-06 19:49:40 +00:00
attribute.c [qfcc] Add a very basic attribute system 2022-02-02 23:51:37 +09:00
class.c [qfcc] Use a union to manage function attributes 2022-02-05 19:30:08 +09:00
codespace.c [gamecode] Move progs auxiliary headers into a subdirectory 2022-01-09 00:26:52 +09:00
constfold.c [qfcc] Clean up handling of value expressions 2022-04-29 16:59:55 +09:00
cpp.c Get QF cross-compiling using MXE/mingw32 2021-03-27 20:09:37 +09:00
dags.c [qfcc] Ensure ops on globals occur before return 2022-02-03 16:33:42 +09:00
debug.c [gamecode] Rename ev_integer to ev_int 2022-01-18 13:27:19 +09:00
def.c Revert "Don't bother creating an alias for a def of the same type." 2022-05-01 14:35:24 +09:00
defspace.c [qfcc] Support alignment in qfo spaces 2022-07-31 17:15:47 +09:00
diagnostic.c [gamecode] Clean up string_t and pointer_t 2022-01-18 12:11:14 +09:00
disassemble.c [gamecode] Rename parm to param 2022-01-27 10:55:06 +09:00
dot.c [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
dot_dag.c [qfcc] Keep track of reachable dag nodes 2021-06-29 09:41:03 +09:00
dot_expr.c [qfcc] Implement support for the swizzle operator 2022-05-01 14:35:24 +09:00
dot_flow.c [util] Make va thread-safe 2021-01-31 16:05:48 +09:00
dot_sblock.c [qfcc] Make it a little easier to see extra info 2021-12-27 14:15:51 +09:00
dot_type.c [gamecode] Rename ev_pointer to ev_ptr 2022-01-18 14:36:06 +09:00
dump_globals.c [gamecode] Clean up progs data access 2022-04-29 16:59:15 +09:00
dump_lines.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
dump_modules.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
dump_strings.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
emit.c [qfcc] Implement support for the swizzle operator 2022-05-01 14:35:24 +09:00
expr.c [qfcc] Implement support for the swizzle operator 2022-05-01 14:35:24 +09:00
expr_assign.c [qfcc] Implement support for the swizzle operator 2022-05-01 14:35:24 +09:00
expr_binary.c [qfcc] Create vector lists only for constants 2022-05-01 14:35:24 +09:00
expr_bool.c [qfcc] Always test float against 0 for Ruamoko 2022-02-06 21:20:00 +09:00
expr_cast.c [qfcc] Clean up handling of value expressions 2022-04-29 16:59:55 +09:00
expr_compound.c [qfcc] Implement some basics for the vector types 2022-02-04 00:25:31 +09:00
expr_obj.c [qfcc] Make is_function_call a little more useful 2022-02-05 19:30:08 +09:00
expr_vector.c [qfcc] Implement automatic casting between same-width vectors 2022-04-29 18:12:47 +09:00
flow.c [qfcc] Give lea its own statement type 2022-02-02 18:55:01 +09:00
function.c [qfcc] Unify temp def, return value and parameter sizes 2022-02-15 08:39:20 +09:00
grab.c [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
idstuff.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
linker.c [qfcc] Support alignment in qfo spaces 2022-07-31 17:15:47 +09:00
Makemodule.am [qfcc] Implement constant casts for the new vector types 2022-04-29 16:59:55 +09:00
method.c [gamecode] Rename MAX_PARMS to PR_MAXPARAMS 2022-01-23 14:17:25 +09:00
obj_file.c [qfcc] Support alignment in qfo spaces 2022-07-31 17:15:47 +09:00
obj_type.c [qfcc] Encode the new vector types 2022-01-30 16:00:49 +09:00
opcodes.c [qfcc] Improve debug printing of statements and operands 2022-05-01 14:35:24 +09:00
options.c [qfcc] Make the meaning of vec * vec selectable 2022-02-06 21:20:00 +09:00
pragma.c [qfcc] Make the meaning of vec * vec selectable 2022-02-06 21:20:00 +09:00
qc-lex.l Fix some MXE build issues 2022-05-22 11:59:53 +09:00
qc-parse.y [qfcc] Adjust ivar offsets to preserve alignment 2022-07-31 17:15:47 +09:00
qfcc.c [gamecode] Clean up progs data access 2022-04-29 16:59:15 +09:00
qfpreqcc Better handling of progs.dat and line numbers. 2012-11-15 15:04:51 +09:00
qfprogs.c [cvar] Make cvars properly typed 2022-04-24 19:15:22 +09:00
qp-lex.l [gamecode] Rename ev_integer to ev_int 2022-01-18 13:27:19 +09:00
qp-parse.y [qfcc] Use a hidden local variable for pascal functions 2022-02-01 16:08:58 +09:00
reloc.c [qfcc] Support alignment in qfo spaces 2022-07-31 17:15:47 +09:00
shared.c [gamecode] Rename ev_integer to ev_int 2022-01-18 13:27:19 +09:00
statements.c Fix a pile of warnings for gcc 12 2022-07-31 17:13:26 +09:00
strpool.c [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
struct.c [qfcc] Adjust ivar offsets to preserve alignment 2022-07-31 17:15:47 +09:00
stub.c [gamecode] Clean up string_t and pointer_t 2022-01-18 12:11:14 +09:00
switch.c [qfcc] Rework the functionality of address expressions 2022-01-25 23:39:17 +09:00
symtab.c Fix a pile of warnings for gcc 12 2022-07-31 17:13:26 +09:00
type.c [qfcc] Implement support for the swizzle operator 2022-05-01 14:35:24 +09:00
value.c Fix a bunch of issues for clang 2022-07-31 17:15:40 +09:00