Commit Graph

299 Commits (6131b3716322d60cf26f7aad1a654dc6c4414051)

Author SHA1 Message Date
Andrew Kelley 6131b37163 fix eval integer wrapping and add tests
See #46
2016-05-06 19:23:21 -07:00
Andrew Kelley 9db45ac362 add shl_with_overflow builtin function
See #46
2016-05-06 16:45:04 -07:00
Andrew Kelley 100802cdc0 add debug safety for left shifting
See #46
2016-05-06 15:46:38 -07:00
Andrew Kelley 0c96920172 add tests for integer wrapping
See #46
2016-05-06 15:02:02 -07:00
Andrew Kelley b8d17b11a7 add tests for integer overflow crashing
see #46
2016-05-05 18:07:15 -07:00
Andrew Kelley dedde0d790 add fence builtin function 2016-05-04 18:34:17 -07:00
Andrew Kelley c95e497857 add cmpxchg builtin function 2016-05-04 18:19:49 -07:00
Andrew Kelley 7f589c0cab support maybe destructuring into a pointer variable 2016-05-03 15:06:34 -07:00
Andrew Kelley 9ccd0ba961 implement string escapes 2016-05-01 14:53:48 -07:00
Andrew Kelley d908afe105 add array multiplication operator 2016-04-28 18:03:44 -07:00
Andrew Kelley 46b0b84b90 ability to specify body of an extern function
closes #101
2016-04-28 16:04:44 -07:00
Andrew Kelley 4815c03caa better parameter codegen
* ability to take address of a parameter (closes #97)
 * debug symbols work for parameters
2016-04-27 17:34:53 -07:00
Andrew Kelley 8ec109de3c ability to compare booleans 2016-04-26 11:39:31 -07:00
Andrew Kelley d1fa5692c6 add array bounds checking in debug mode
closes #27
2016-04-26 11:36:11 -07:00
Andrew Kelley d0378057d1 support switching on error union type
closes #23
2016-04-25 21:51:04 -07:00
Andrew Kelley d1b65c6f46 fix ability to parse character literals 2016-04-24 16:36:05 -07:00
Andrew Kelley 8583fd7f9f add codegen for pointer comparison
see #145
2016-04-24 12:27:59 -07:00
Andrew Kelley 8ad75a9bf3 add compile error for invalid equality operator uses
See #145
2016-04-24 12:09:51 -07:00
Andrew Kelley 899fb14c30 fix handling of slice of zero bits type
closes #143
2016-04-23 13:58:30 -07:00
Andrew Kelley 55b28ab030 fix returning empty struct from function
closes #142
2016-04-23 12:21:47 -07:00
Andrew Kelley 66163692ad parseh: support anonymous enums and enums with initializers 2016-04-22 21:43:48 -07:00
Andrew Kelley 8187396f64 add syntax to allow symbols to have arbitrary strings as names 2016-04-22 15:24:18 -07:00
Andrew Kelley 35362f8137 better parsing of C macros
See #88
2016-04-21 15:48:13 -07:00
Andrew Kelley a380b803ac ability to use a struct with no fields 2016-04-21 09:47:41 -07:00
Andrew Kelley ae600d2f7f fix undeclared identifier not marking function as impure 2016-04-20 17:25:26 -07:00
Andrew Kelley 6acc354957 for loop: add ability to get pointer to elem var
see #51
2016-04-20 11:58:01 -07:00
Andrew Kelley a25307c0a1 add optional continue expression to while loop
closes #139
2016-04-19 20:28:44 -07:00
Andrew Kelley 04364c45ce fix casting with imported symbol not working 2016-04-19 19:37:25 -07:00
Andrew Kelley 36c6acfc76 enum init uses container init syntax instead of fn call
See #5
2016-04-19 18:52:09 -07:00
Andrew Kelley 7a7f83033c add test for public enums
See #5
2016-04-19 17:20:23 -07:00
Andrew Kelley 4e37fb2fa2 implement constant initialization of enum values
see #5
2016-04-19 17:15:55 -07:00
Andrew Kelley ff1ab3fe9c fix crash in non-const expression in struct literal outside fn 2016-04-18 18:18:41 -07:00
Andrew Kelley f4c7e1bf49 rearrange standard library a bit 2016-04-18 16:42:56 -07:00
Andrew Kelley 5e33175517 add @embed_file builtin function 2016-04-18 15:47:21 -07:00
Andrew Kelley 832454f38b move 2 tests to self hosted land 2016-04-18 13:06:17 -07:00
Andrew Kelley 7f56e4ac16 move more tests to self-hosted land 2016-04-14 11:15:02 -07:00
Andrew Kelley fcedc35551 fix crash with generic function and implicit cast 2016-04-14 10:39:03 -07:00
Andrew Kelley 3f9632bb40 eval: support array literals 2016-04-13 10:13:49 -07:00
Andrew Kelley 3c27cb2527 more eval tests and fix eval call analyze code 2016-04-12 17:33:46 -07:00
Andrew Kelley 69109bc270 add error for dividing by zero in static function evaluation 2016-04-12 16:18:41 -07:00
Andrew Kelley be4df96e4b passing all tests 2016-04-12 13:30:52 -07:00
Andrew Kelley 954a451c51 unsigned ints implicitly cast to signed ints when they fit
also fix #135
2016-04-11 22:57:32 -07:00
Andrew Kelley 4a3bce4b63 move some tests into self hosted 2016-04-10 13:58:04 -07:00
Andrew Kelley b117b5907c add error for accessing empty array
closes #134
2016-04-10 13:18:42 -07:00
Andrew Kelley 0683bd8bf6 fix crash when casting undefined to slice
also fix crash having to do with runtime allocated stack memory
2016-04-10 12:04:25 -07:00
Andrew Kelley e66ed0f2e2 add error for assigning null to non-nullable pointer
closes #133
2016-04-09 17:35:26 -07:00
Andrew Kelley 707131e37b goto: jumping out of scope runs defers
see #44
2016-04-09 17:26:04 -07:00
Andrew Kelley 21eca6478f re-introduce goto
see #44
2016-04-09 16:41:17 -07:00
Andrew Kelley 7026bed462 fix debug symbols regression after llvm 3.8.0 2016-04-09 14:21:55 -07:00
Andrew Kelley 7a05e18efb implement @err_name builtin function 2016-04-09 08:55:53 -07:00