Commit Graph
282 Commits
Author SHA1 Message Date
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
David Anderson e7fc06910b Fix a crash when properties have setters but not getters. 2014-10-29 20:51:03 -07:00
David Anderson d4fb74ef9a Fix regression where duplicate function names were not an error. 2014-09-16 22:32:46 -07:00
Nicholas Hastings 9a9446400d Nuke spurious NULL checks in spcomp to appease Clang 3.5 2014-09-09 22:04:24 -04:00