Bill Currie
896791b209
Correct the spelling of "int" and clean up the mess.
2011-03-25 16:53:04 +09:00
Bill Currie
1617f0765e
Support the default type without segfaulting.
2011-03-25 09:59:48 +09:00
Bill Currie
8c1d948586
And qfcc finds another bug :)
2011-03-24 13:36:36 +09:00
Bill Currie
a7cfe3b215
Preserve the current class across protocol defs.
...
It seems that protocol defs are allowed in class implementations, so don't
let the protocol def kill the current class for the class implementation.
2011-03-24 11:55:17 +09:00
Bill Currie
2be07fd652
Keep the the temp string out of progs for sprintf.
...
There's no need for the string to be in progs memory when printing as the
end result will be moved into progs memory regardless.
2011-03-24 11:45:58 +09:00
Bill Currie
71af121665
Detect missing @end tags.
...
Give a warning when @end is forgotten in class implementations.
2011-03-24 11:44:22 +09:00
Bill Currie
b0d1e782ee
Treat allocating less than 1 byte as an error.
2011-03-24 11:10:08 +09:00
Bill Currie
1822290b1a
Fix the double offset of inputline text.
2011-03-24 08:50:32 +09:00
Bill Currie
e878ace83b
Make input lines mostly work.
...
There is still a problem with the placement of the input line text
relative to the text box caused by vertical movement being excessive.
2011-03-23 21:35:49 +09:00
Bill Currie
8d3508cf20
Allocate space for temp defs using size rather than type.
...
Statement operands throw away the high level type information, so store
type size in the operand and use this size for allocating space for temps
rather than using the low-level type.
2011-03-23 21:32:14 +09:00
Bill Currie
98f5f84ca3
Clean up the leftovers of converting the controls menu.
...
The bindings menu is still inaccessible, though.
2011-03-23 15:22:01 +09:00
Bill Currie
15fc325136
Fix the features menu.
2011-03-23 15:19:30 +09:00
Bill Currie
9b62c8c126
Rename ty_type_e to ty_meta_e and type_t.ty to type_t.meta
2011-03-22 16:06:47 +09:00
Bill Currie
d4be914019
Fix initialized vector variables.
...
The whole initialized variable system is wonky, but it will do for now.
2011-03-22 15:10:06 +09:00
Bill Currie
a9eb793a5e
Yay, even more tests :P
2011-03-22 15:00:46 +09:00
Bill Currie
6a49861b49
Fix the bogus source file for "redefined" functions.
2011-03-22 13:45:44 +09:00
Bill Currie
7dbd5f656c
Fix traditional vector component access.
2011-03-22 13:05:42 +09:00
Bill Currie
f1d9570dc8
Fix constant value type handling.
...
Rename immediate.[ch] to value.[ch] and clean up the mess.
Add convert_value() to convert the type of a value (only scalar types).
2011-03-22 12:24:39 +09:00
Bill Currie
b812c0e235
Disable -Wlogical-op for gcc 4.4 or lower.
...
It seems to be broken before 4.5.
2011-03-21 21:54:00 +09:00
Bill Currie
1219df0872
Fix field immediates.
...
Field immediates need to be treated the same way as pointer immediates when
merging values.
2011-03-21 18:11:46 +09:00
Bill Currie
46093c0937
Use the correct meta type for spacial types.
...
Although vector and quaternion types have symbol tables, they are not
really structs, so set the meta type to "none", allowing the types to be
encoded correctly.
2011-03-21 17:26:49 +09:00
Bill Currie
cefe7e2e94
Use the correct source of defs for field defs.
2011-03-21 17:07:40 +09:00
Bill Currie
0c0f4360da
Make field defs "nosave".
...
The engine treats fielddefs with DEF_SAVEGLOBAL set as bogus.
2011-03-21 17:06:45 +09:00
Bill Currie
bc0cffc9c6
Fix handling of autorelease pools in the menu code.
...
Create a "menu_pre" function that creates the autorelease pool, change
menu_post() to release the pool correctly, and make the menu internal code
require and call menu_pre.
2011-03-21 13:14:14 +09:00
Bill Currie
a9e139e14c
Correct a minor logic error.
...
We don't want to always add a new autorelease pool, and we certainly want
one if there are none.
2011-03-21 13:12:30 +09:00
Bill Currie
f5ce9e2004
Fix a merge induced error in overloaded functions.
2011-03-20 19:04:18 +09:00
Bill Currie
1ada2a96cf
Merge branch 'master' into qfcc-codegen
...
Conflicts:
tools/qfcc/source/expr.c
tools/qfcc/source/function.c
tools/qwaq/test.r
2011-03-20 15:58:31 +09:00
Bill Currie
7c113a12db
Make zone errors a little more useful.
2011-03-20 15:50:09 +09:00
Bill Currie
025c39cc02
Ensure stdout is flushed in the progs signal_hook()
2011-03-20 13:35:59 +09:00
Bill Currie
a919e5f619
Make class_check_ivars() use class_add_ivars() to add the ivars.
...
This avoids implementation ivar blocks trashing the ivar offsets in
derived classes.
2011-03-20 13:35:59 +09:00
Bill Currie
104c29e4da
Avoid a segfault when the called function is invalid.
...
This is most likely to occur when dumping code from qfo files with external
functions.
2011-03-20 13:35:12 +09:00
Bill Currie
f20424afe5
Make "bad type" output more useful.
...
Print the four (assumes non-v6) values in hex rather than "bad type".
2011-03-17 20:35:14 +09:00
Bill Currie
ebfbd7c358
Disable the unsigned comparison instructions.
...
They need unsigned support, or special treatment, so they have to wait.
2011-03-17 20:33:38 +09:00
Bill Currie
8c8a6a4d63
The function return type is the address of the type descriptor...
2011-03-17 20:31:20 +09:00
Bill Currie
01144d23cf
Add a new gcc warning option and fix the two bugs it found.
2011-03-17 19:58:56 +09:00
Bill Currie
7b9d70167f
Fix some missed language changes.
2011-03-10 20:51:04 +09:00
Bill Currie
5aa0b34570
Add the cast statement to the statement block.
...
*sob*
2011-03-10 20:43:53 +09:00
Bill Currie
f663f587fe
Fix the missing local defs for builtin functions.
2011-03-10 20:16:35 +09:00
Bill Currie
899af3119b
Use the correct type when generating a move expression.
2011-03-10 19:30:21 +09:00
Bill Currie
2129eaaf20
Dereference moves need movepi rather than movei.
2011-03-10 19:29:23 +09:00
Bill Currie
bce3935ea6
Add a void address instruction.
2011-03-10 19:28:03 +09:00
Bill Currie
8d69c5c898
More tests
2011-03-09 20:34:23 +09:00
Bill Currie
cbbbf87e20
Resurrect the stats output.
2011-03-09 15:51:17 +09:00
Bill Currie
8368f57fbf
Close a potential buffer overflow.
2011-03-09 11:09:46 +09:00
Bill Currie
4d90eba2ad
Remove some unused globals.
2011-03-09 11:08:30 +09:00
Bill Currie
2464a89d37
Preserve relocs across def churning.
...
Freeing then re-allocating a def to change its storage from external is
really not the right way to do it, but for now this fixes the loss of the
relocs. With this, the menus seem to work :)
2011-03-09 10:52:29 +09:00
Bill Currie
39278ba8cc
Explicitly select between direct and indirect moves.
2011-03-09 10:30:57 +09:00
Bill Currie
90de6b0499
Add a movepi instruction to support indirect moves of fixed size.
2011-03-09 10:29:24 +09:00
Bill Currie
18005cc80d
Rename move to movei.
2011-03-09 10:28:40 +09:00
Bill Currie
6c4563b21d
Change movep's name from <MOVE> to <MOVEP>.
2011-03-09 10:25:20 +09:00