Bill Currie
f8ed454547
warn on if (a = b)
2004-01-25 21:45:07 +00:00
Bill Currie
7423ee389d
better timing for constant folding
2004-01-25 21:36:44 +00:00
Bill Currie
39c7ff1e90
disable debug output
2004-01-25 08:59:55 +00:00
Bill Currie
51b0a66ac7
better constant folding with auto-conversion between scalar types (might
...
make that optional for non-constants)
2004-01-25 08:55:03 +00:00
Bill Currie
3e5a103e55
proper error checking when openning progs.src
2004-01-22 04:16:19 +00:00
Bill Currie
8f440c7911
linker.c:
...
I think I found the real reason doxygen gets confused
expr.c:
add a check for x & y == 2 (or similar) doesn't work for constant y at
the moment.
2004-01-22 01:04:48 +00:00
Bill Currie
2f21926568
more constant folding
2004-01-21 21:58:34 +00:00
Bill Currie
e63b205fd2
don't seg when in traditional mode and @ is seen
2004-01-21 21:43:31 +00:00
Bill Currie
1ddd7da5ec
remove redundant cast
2004-01-13 03:07:36 +00:00
Chris Ison
34f98e5a88
fix incompatable pointer type
2004-01-12 05:36:23 +00:00
Bill Currie
41106a1f01
hopefully shut doxygen up about a "const char" function
2004-01-11 05:52:19 +00:00
Bill Currie
802aacfaf4
allow constant expressions to be used for builtin numbers
2004-01-07 00:03:05 +00:00
Bill Currie
35d690c701
give an error message instead of segging for the following code:
...
@class foo;
@interface bar : foo
@end
2003-12-19 04:59:34 +00:00
Bill Currie
bb4e9de0db
fix a real oopsie with if (const)
2003-11-16 07:17:18 +00:00
Bill Currie
834ab26be5
remove some buggy debug code :P
2003-10-27 21:48:13 +00:00
Bill Currie
63414ea836
more gccisms in the error reporting (In function ...)
2003-10-25 04:35:47 +00:00
Bill Currie
58d0f188f1
recover from errors in bool expressions (ie, don't segfault)
2003-10-24 22:23:56 +00:00
Bill Currie
8e030089a7
only one define/undefine/include per option
2003-10-24 21:23:03 +00:00
Bill Currie
7ef80d1da2
mske sure .self and .this are defined in progs.src mode (ie, @self and
...
@this)
2003-10-22 21:49:47 +00:00
Bill Currie
c76282c668
fix bools in function calls
2003-10-22 16:49:57 +00:00
Bill Currie
5f97de56d1
fix a few bugs
2003-10-22 09:14:53 +00:00
Bill Currie
969dad87eb
fix a secfault in return_expr
2003-10-22 08:30:54 +00:00
Bill Currie
72ae59f882
short circuit logic can now be controlled (see man page)
2003-10-22 08:27:38 +00:00
Bill Currie
945006494f
short circuit logic for && and || (as per C). forces standard precedence
...
(ie, breaks --traditional) when enabled (no choice at the moment, next fix)
2003-10-22 08:05:17 +00:00
Bill Currie
99034fef27
initialized locals aren't constant
2003-09-25 02:05:43 +00:00
Bill Currie
4ce81b28d7
remove nested scopes for traditional mode
2003-09-23 17:59:46 +00:00
Bill Currie
91207c0180
make void functions actually return float in traditional mode (qcc allowed
...
things like foo = void_function)
2003-09-23 16:57:53 +00:00
Bill Currie
387464a27c
mangle precedence of = relative to && and || for --traditional (bletch).
...
also make noise when assigning to bad lvalues (eg !x = y)
2003-09-23 16:42:03 +00:00
Bill Currie
ba26628b80
--traditional now "fixes" (ie, breaks) operator precedence to match qcc
...
except for the relationship between "=" and "&&" and "||": not sure I want
to go that far towards bug compatability.
2003-09-22 22:15:31 +00:00
Bill Currie
9027648721
kill -t for --traditional, add --advanced, default to --traditional for
...
progs.src mode and --advanced otherwise
2003-09-20 04:13:32 +00:00
Bill Currie
651fa8ca12
correct the operator precendece to match C. hopefully won't cause any
...
problems :)
2003-09-19 20:50:05 +00:00
Bill Currie
11538d4745
access arrays in structs more efficiently (especially when using constant
...
indeces)
2003-09-02 17:41:16 +00:00
Bill Currie
f10829206a
use a cast expression rather than and bind expression to do the unsigned
...
comparison for switches. clears the notice (bind seems to be correct in
general) and is more correct conceptually anyway.
2003-09-02 16:53:45 +00:00
Bill Currie
23b525059f
cast between integer and unsigned just by changing access method
...
effectively deprecating conv.ui and conv.iu (they'll die eventually:)
2003-09-02 16:45:36 +00:00
Bill Currie
3a6c8b8b16
wrong place to decrement uses. now have a problem in switch :/
2003-09-02 06:23:57 +00:00
Bill Currie
ef4ca0c798
some doxygen tweaks
2003-08-31 05:24:24 +00:00
Bill Currie
b01d4d4589
get the type for the destination from the right place (hope that wasn't
...
a bugfix for something else:)
2003-08-24 20:38:32 +00:00
Bill Currie
7cffeb27bf
correct the temp def counting when casting
2003-08-24 08:17:31 +00:00
Bill Currie
6086aa2b99
allow casts between pointers and integers
2003-08-24 08:03:25 +00:00
Bill Currie
a08efafb7a
make sure __VERSION6__ is defined when it should be
2003-08-24 07:26:02 +00:00
Bill Currie
385a90e8fb
correct pr_symtab_t to include the pointer to the array of selectors used
...
in the module. Unfortunatly, this requires a version bump on both qfo and
progs files due to the changes structure layout.
2003-08-23 06:15:19 +00:00
Bill Currie
b38486d405
make rel_def_op work properly
2003-08-22 19:48:14 +00:00
Bill Currie
e9ca03416a
create the temp def for bound defs properly
2003-08-22 18:16:30 +00:00
Bill Currie
d20b8bf0c1
pass NIL though ... safely
2003-08-22 06:04:31 +00:00
Bill Currie
303287dc11
don't seg on undefined vars
2003-08-22 05:48:19 +00:00
Bill Currie
204243fe95
better message type checking
2003-08-22 05:26:47 +00:00
Bill Currie
febc57e71b
typecheck message params when possible
2003-08-22 04:08:33 +00:00
Bill Currie
7d09105740
remove debug code
2003-08-21 02:24:11 +00:00
Bill Currie
11c7c27f70
better relocations: pointers to structure members now work
2003-08-21 02:21:30 +00:00
Bill Currie
a2300387de
fix a bunch of segfaults
2003-08-20 22:36:02 +00:00
Bill Currie
93cafe878a
convert NIL properly in function calls
2003-08-20 20:28:28 +00:00
Bill Currie
7d830ffc1f
make @defs work properly and don't do uninitialized checks on structs
2003-08-20 19:58:41 +00:00
Bill Currie
aa712c0169
make [super foo] work in category methods
2003-08-18 06:11:41 +00:00
Bill Currie
aa4f81b6da
class.c:
...
whitespace
switch.c:
set up the relocations for the switch jump table properly
2003-08-18 02:57:21 +00:00
Bill Currie
515dbaccc0
make qc-lex.c and qc-parse.[ch] part of the distribution (two less
...
requirements for the average user)
2003-08-12 18:22:11 +00:00
Bill Currie
4a680bf981
grovel around for the source file and line of an undefined def to give
...
better diagnostics
2003-08-06 21:36:07 +00:00
Bill Currie
448b6f24be
make the useless expression warning more interesting
2003-08-05 21:41:48 +00:00
Bill Currie
329c91fce4
expr.c:
...
qcc actually had the precedence of "!x && y" correct, so don't invert
the logic for it in traditional code.
qfcc.c:
allow the .debug_file def to be emitted in traditional mode.
2003-08-05 17:48:16 +00:00
Bill Currie
3e3b316891
blah, double ;
2003-08-01 21:26:36 +00:00
Bill Currie
dd9ab1e050
get unsigned mostly working
2003-08-01 21:20:04 +00:00
Bill Currie
8e21ecd4d9
make private methods work properly and put overided methods into the
...
correct class
2003-08-01 16:24:44 +00:00
Bill Currie
1b5bf9d176
make methods showing up only in the implementation work when overiding an
...
inherited method
2003-08-01 05:08:15 +00:00
Bill Currie
24f4bcfebf
initialize the new field properly
2003-08-01 02:43:51 +00:00
Bill Currie
0361cb261f
fix an incorrect inherited attribute access caused by my "no ivars" fix
...
(part of the struct re-work)
2003-08-01 02:43:11 +00:00
Bill Currie
ae8e7553ce
fix struct parsing and printing
2003-07-31 06:17:49 +00:00
Bill Currie
9f0d4cc746
must use save_string when source of string is unknown :P
2003-07-31 06:14:26 +00:00
Bill Currie
cc0d8b364d
fix a couple "value computed is not used" not used warnings
2003-07-31 02:16:26 +00:00
Bill Currie
ab94498503
heh, that was a symptom. forget &void :)
2003-07-30 21:55:32 +00:00
Bill Currie
8099f0d8f2
handle addresses of void defs
2003-07-30 20:57:50 +00:00
Bill Currie
e957dc798f
oops, initialize type_param properly (D'OH:)
2003-07-30 17:59:34 +00:00
Bill Currie
6ecb707257
revamp the struct system so "struct foo;" does the right thing (ala C)
2003-07-30 04:11:45 +00:00
Jeff Teunissen
5c1875ba28
Update the interface-check warning to be more descriptive.
2003-07-29 18:53:13 +00:00
Bill Currie
5e6b25c917
add interface-check warning option. defaults off
2003-07-29 18:31:12 +00:00
Bill Currie
5b9b11241b
make method lookup work with id
2003-07-29 17:38:29 +00:00
Bill Currie
8966b0a533
get -/+ into selector name for "does not respond to" warning.
2003-07-27 19:47:14 +00:00
Bill Currie
f0c5a374d2
get selector naming (and method name mangline) right
2003-07-27 19:13:13 +00:00
Bill Currie
411bddb0d8
whitespace
2003-07-27 18:50:17 +00:00
Jeff Teunissen
c9858f4f65
Preliminary "unsigned" support for qfcc and the gamecode engine. Should still
...
be compatible.
2003-07-26 21:07:51 +00:00
Bill Currie
1366ad4661
fix <protocol_list>
2003-07-25 20:34:24 +00:00
Bill Currie
34df024e34
make sure protocol_hash exists
2003-07-24 19:41:59 +00:00
Bill Currie
5962900e25
allow rel_def_op relocs to point just past the end of the code. needed for
...
jump tables.
2003-07-24 17:51:24 +00:00
Bill Currie
378c477b8e
setup vector fields properly
2003-07-23 18:40:09 +00:00
Bill Currie
778cd78c35
fix some namespace issues with names both being a field and an ivar
2003-07-23 18:28:31 +00:00
Bill Currie
37f660801b
QNX's printf doesn't like null pointers
2003-07-17 20:04:07 +00:00
Bill Currie
9bd839e309
correct a couple of typos
2003-05-15 18:55:57 +00:00
Bill Currie
a2243e8936
update the --help docs with all the options
2003-05-15 17:48:59 +00:00
Bill Currie
dedb2fa6bf
get [super ...] working correctly
2003-05-15 05:58:31 +00:00
Bill Currie
bfaa07c726
better type mismatch error reporting
2003-05-15 05:19:05 +00:00
Bill Currie
5fac3e6f3a
fix a buffer underflow
2003-05-15 05:10:28 +00:00
Bill Currie
094c9c5cdb
make derefencing a pointer without an offset more efficient
2003-05-13 19:49:23 +00:00
Bill Currie
f59f766af1
use the correct type when taking the address of a pointer derefernece
2003-05-13 19:42:14 +00:00
Bill Currie
1ea1a2f529
don't bother checking access restrictions in class_ivar_expr as
...
class_find_ivar will catch them when the generated self.ivar is `parsed'.
2003-05-13 01:30:01 +00:00
Bill Currie
0ebf9d6afc
more inline avoidance
2003-05-07 15:00:17 +00:00
Bill Currie
6fb5acc868
more auto-inline avoidance
2003-05-07 02:45:17 +00:00
Bill Currie
b6b5089ccc
add a "nosave" flag to defs making it easier to make defs that don't get
...
saved automaticly
2003-04-25 17:00:22 +00:00
Bill Currie
19980964d7
don't create defs for the components of vector or quaternion defs
2003-04-23 19:50:16 +00:00
Bill Currie
8f4308c86a
get .param_size and .debug_file linked in properly
2003-04-23 18:25:09 +00:00
Bill Currie
57254e5d33
fix a double ;
2003-04-23 06:17:36 +00:00
Bill Currie
8b24578547
print the operator for the precedence notice properly
2003-04-23 01:56:44 +00:00
Bill Currie
f7d806e8d5
can now handle > vector sized parameters
2003-04-22 20:11:16 +00:00