David Anderson
b491345d78
Fix continue in a loop body leaking heap-allocated variables. (bug 6370, r=fyren)
2015-05-27 10:33:07 -04:00
David Anderson
15b65468ac
Fix bug where the compiler could crash trying to dereference a decayed accessor expression used as |this|.
2015-04-18 08:53:13 -04:00
David Anderson
d64bcc763a
Fix bug where complex |this| values could be corrupted while evaluating function arguments. (bug 6329)
2015-04-18 08:51:02 -04:00
Peace-Maker
491d24a028
Add missing debug info for multidimensional strings
...
new String:INVISIBLE[2][8];
Multidimensional arrays like this wouldn't get their debug info added to
the debug symbols table.
Bug: https://bugs.alliedmods.net/show_bug.cgi?id=6324
See Fyren's comment in the bug report.
This patch recursively checks the parent symbol of array dimensions
until it finds the top symbol and uses that to check for the compound
level.
This still allows for early exiting the loop when going out of scope.
2015-04-04 11:05:36 -04:00
Peace-Maker
9a26ae0526
Fix declaring variable on same line after array
...
int a[5], b;
b would get a size of |0| on the stack instead of a sizeof(cell_t).
Bug: https://bugs.alliedmods.net/show_bug.cgi?id=6335
2015-04-04 11:03:27 -04:00
Ryan Stecker
8f0067b3b4
Improve the diagnostic given when a function prototype doesn't match an existing definition.
2015-04-04 10:51:10 -04:00
David Anderson
c944ef18b3
Remove sizeof() as a special-case default argument value.
2015-02-04 17:18:11 -05:00
David Anderson
79bb037b66
Don't special case hierarchy-free enumeration constants when used as array indices. (bug 6302)
2015-01-31 22:12:59 -08:00
David Anderson
ea3f491a8e
Fix chained field expressions losing lvalue-ness. (bug 6298)
2015-01-31 22:12:58 -08:00
Nicholas Hastings
3a499036ac
Fix incorrect error line show for incorrect return value on forwards (bug 6226).
2015-01-28 14:46:56 -05:00
David Anderson
bcef7365b0
Fix uninitialized variable in decl_enum().
2015-01-04 12:17:13 -08:00
David Anderson
9e882783f9
Allow "stock static" in addition to "static stock".
2015-01-04 12:17:00 -08:00
David Anderson
00a663c1a3
Remove some heinous preprocessor directives.
...
Gone:
- #emit (bah-roken!)
- #pragma compress (useless)
- #pragma library (useless)
2015-01-04 12:16:47 -08:00
Ryan Stecker
154d84668b
Old style retagging should emit a compiler warning when newdecls are required.
2014-12-17 16:37:39 -06:00
David Anderson
bab1110bc0
Disallow coercion to/from char[] and any[].
2014-12-14 02:00:58 -08:00
David Anderson
722a23c818
Redo menu methodmaps.
2014-12-13 12:53:30 -08:00
David Anderson
b607bfeca9
Reserve 'builtin' as a keyword.
2014-12-12 21:29:28 -08:00
David Anderson
5b69efe5d4
Add static method support to methodmaps.
2014-12-12 10:10:46 -08:00
David Anderson
afeae84340
Replace symbol proxies with type symbols.
...
Proxies were rather hacky and complicated, and only existed as a
workaround for oddities with constructors. This patch replaces them with
actual type symbols, a very tiny step to semantically getting rid of tags.
This greatly simplifies how we implement constructors, and paves the way
for using methodmap symbols in field expressions.
Since non-value symbols are new to spcomp1, we place a rather
pigeonholed check into primary() to make sure non-value symbols don't
escape into expressions.
2014-12-12 10:10:43 -08:00
David Anderson
0295f817b8
Allow int: and void: tags, but warn.
2014-12-10 02:36:30 -08:00
David Anderson
1ee3067575
Gracefully error on newly reserved keywords.
2014-12-09 23:18:11 -08:00
David Anderson
94bed806fe
Reserve many keywords.
2014-12-09 23:04:13 -08:00
David Anderson
9c98edd104
Rename "union" semantics to "typeset".
2014-12-09 22:36:42 -08:00
David Anderson
68e0645813
Add a view_as operator.
2014-11-30 19:08:25 -08:00
David Anderson
157549e119
Fix a bug where aliased constructors of nullable methodmaps could not be used.
2014-11-30 18:56:37 -08:00
David Anderson
9f5c8b60ae
Add a "new" keyword for constructing nullable methodmaps.
2014-11-30 18:38:26 -08:00
David Anderson
62c243f0a5
Fix reading the wrong symbol name when throw argument errors.
2014-11-22 12:23:57 -08:00
David Anderson
673ff572c5
Disallow retagging enums or using implicit-int as an enum tag.
2014-11-20 19:30:22 -08:00
David Anderson
79143d8b6e
Port files.inc to transitional syntax.
2014-11-15 13:42:28 -08:00
David Anderson
cfa0d9341e
Remove handling of class pseudokeyword since there is no C++ API to use it.
2014-11-09 18:12:30 -08:00
David Anderson
4bc7b9243a
Define 'this' as a keyword.
2014-11-09 13:01:35 -08:00
David Anderson
22df518ab5
Fix a bug where local dynamic array declarations could be mistakenly parsed as old decls (bug 6280).
2014-11-09 00:15:09 -08:00
David Anderson
c228be83d6
Revert "Fix a bug where local dynamic array declarations could be mistakenly parsed as old decls."
...
This reverts commit 046f167b6e
.
2014-11-09 00:15:00 -08:00
David Anderson
046f167b6e
Fix a bug where local dynamic array declarations could be mistakenly parsed as old decls (bug 6279).
2014-11-09 00:12:44 -08:00
David Anderson
099f299113
Fix trailing commas in array literals changing the result of sizeof().
2014-11-08 23:15:23 -08:00
David Anderson
4c377f21f9
Mark symbols as read when using sizeof().
2014-11-08 20:45:43 -08:00
David Anderson
704e9579f7
Fix comparisons of derived tags (bug 6239).
2014-11-08 20:27:39 -08:00
David Anderson
7609d19e32
Fix bug where bad carriage returns mess up line endings.
2014-11-08 18:04:45 -08:00
David Anderson
3cc5c198b4
Allow dynamic char arrays.
2014-11-08 17:39:43 -08:00
David Anderson
dbee1bcd08
Add an error check after calling doexpr2().
2014-11-08 03:07:34 -08:00
David Anderson
512cbc73a0
Fix a loophole with static local variables.
2014-11-08 02:54:29 -08:00
David Anderson
039572060e
Add new dynamic array syntax.
2014-11-08 02:48:13 -08:00
David Anderson
f08e53f5d2
Make sizeof on indeterminate arrays an error.
2014-11-08 02:07:43 -08:00
David Anderson
6d507ceb27
Add a special case for assigning a string literal to a char array.
2014-11-08 02:04:11 -08:00
David Anderson
70e095f320
Define post-fix arrays as determinate and pre-fix arrays as indeterminate.
2014-11-07 22:39:00 -08:00
David Anderson
a8796543af
Use symbols for fatal errors and bump them by 20 slots.
2014-11-07 17:41:33 -08:00
David Anderson
2c31b99ce3
Move is_new and has_postdims bits out of declinfo and into typeinfo.
2014-11-07 17:05:27 -08:00
David Anderson
613b06f6c0
Improve error messages when we can't find a typeexpr on a method.
2014-10-30 21:15:48 -07:00
David Anderson
97c3a2bc6e
Fix a crash when we fail to parse a typexpr in a global declaration.
2014-10-30 21:09:10 -07:00
David Anderson
eaff5c9364
Allow any in new-style natives.
2014-10-30 17:19:01 -07:00