Andrew Kelley
|
03b51a753a
|
a = b % c uses the types of b and c instead of a
|
2016-02-13 15:03:19 -07:00 |
|
Andrew Kelley
|
8d510c699a
|
parseh: fix branching on undefined memory
|
2016-02-13 13:25:55 -07:00 |
|
Andrew Kelley
|
c8376af92d
|
add @ctz, @clz and compiler_rt implementation
|
2016-02-13 12:50:13 -07:00 |
|
Andrew Kelley
|
a5aeb7381f
|
if statement children nodes know if they're compiled out
|
2016-02-12 16:00:50 -07:00 |
|
Andrew Kelley
|
b8a1cb299e
|
avoid codegening functions never called from conditional compilation
|
2016-02-12 15:51:12 -07:00 |
|
Andrew Kelley
|
0c1ce21f7d
|
add @compile_var("environ")
|
2016-02-12 01:23:06 -07:00 |
|
Andrew Kelley
|
2dc4ac0e21
|
add @compile_var("os") and @compile_var("arch")
|
2016-02-11 18:33:04 -07:00 |
|
Andrew Kelley
|
08eb19456b
|
add compile error for missing enumeration value in switch
|
2016-02-11 16:15:08 -07:00 |
|
Andrew Kelley
|
a180168871
|
fix division by 0 crashing compiler
closes #99
closes #124
thanks to Michael Patraw for submitting a patch for this.
|
2016-02-11 15:02:22 -07:00 |
|
Andrew Kelley
|
2bf6c28bc3
|
ability to cross compile
hello_libc.zig can produce a windows build
|
2016-02-11 01:33:27 -07:00 |
|
Andrew Kelley
|
aa504275f0
|
don't create debug type for void arrays
|
2016-02-09 20:38:42 -07:00 |
|
Andrew Kelley
|
d8f6388b63
|
if statements can be const expr evaluated
also introduce error for unnecessary if statement
but if the condition depends on a compile variable, then
the if statement is OK
|
2016-02-09 18:53:28 -07:00 |
|
Andrew Kelley
|
5bdcdd1669
|
@const_eval returns poison value for type when it fails
resulting in fewer redundant error messages
|
2016-02-09 10:02:31 -07:00 |
|
Andrew Kelley
|
1d92700d08
|
fix build with GCC
|
2016-02-09 08:46:55 -07:00 |
|
Andrew Kelley
|
430d0dfcb2
|
support static linking against libc
|
2016-02-08 00:50:51 -07:00 |
|
Andrew Kelley
|
87cdbb6c25
|
improve performance for get_fn_type
|
2016-02-07 18:32:19 -07:00 |
|
Andrew Kelley
|
6b3ce918db
|
array.len generates a constant number literal expression
|
2016-02-07 15:52:52 -07:00 |
|
Andrew Kelley
|
42fe4e3cc8
|
remove ptr field access of arrays
use &array[0] instead
|
2016-02-07 15:43:19 -07:00 |
|
Andrew Kelley
|
36cf9f0c72
|
error for non const expr in array size outside fn
|
2016-02-07 15:16:36 -07:00 |
|
Andrew Kelley
|
26ea20d88f
|
implement @const_eval
closes #73
|
2016-02-07 15:11:20 -07:00 |
|
Andrew Kelley
|
94ed9f622a
|
blocks with one statement pass constant expression eval
|
2016-02-07 12:38:51 -07:00 |
|
Andrew Kelley
|
7b00ed362c
|
fix debug type of ptr and len fields of slices
|
2016-02-07 02:20:36 -07:00 |
|
Andrew Kelley
|
642b38a577
|
add debug info for slices
closes #47
|
2016-02-07 01:53:38 -07:00 |
|
Andrew Kelley
|
7f6b0ba6ea
|
ability to explicitly cast maybe pointers to each other
|
2016-02-07 01:25:04 -07:00 |
|
Andrew Kelley
|
4174134108
|
unreachable return type can cast to any other return type
|
2016-02-07 00:23:05 -07:00 |
|
Andrew Kelley
|
c7dc56f737
|
add test for ?? return and add const expr eval for ? prefix op
|
2016-02-06 19:35:33 -07:00 |
|
Andrew Kelley
|
65a03c5859
|
implement %defer and ?defer
see #110
|
2016-02-06 16:36:49 -07:00 |
|
Andrew Kelley
|
34a7e6fdb3
|
codegen: return respects unconditional defer
See #110
|
2016-02-06 01:18:39 -07:00 |
|
Andrew Kelley
|
ec33e5a638
|
simple unconditional defer support
See #110
|
2016-02-06 01:00:29 -07:00 |
|
Andrew Kelley
|
6a2ede5a6e
|
parsing code for defer and more
* disable goto and label support see #44
* refactor the way block contexts work
|
2016-02-05 23:20:34 -07:00 |
|
Andrew Kelley
|
15fe3c4235
|
fix explicit casting from integer literal to float
|
2016-02-05 04:30:04 -07:00 |
|
Andrew Kelley
|
093e0d1bb0
|
support variable in switch expression prongs
See #43
|
2016-02-04 17:21:08 -07:00 |
|
Andrew Kelley
|
a4cba900e5
|
no namespace required when switching on enum
See #43
|
2016-02-04 16:09:06 -07:00 |
|
Andrew Kelley
|
5490f907fe
|
switch statements resolve peer compatibility
|
2016-02-04 15:50:06 -07:00 |
|
Andrew Kelley
|
b87d0abefe
|
fix debug info for bool type
|
2016-02-04 14:02:37 -07:00 |
|
Andrew Kelley
|
25e74cb385
|
ability to explicitly cast bool to int
|
2016-02-04 12:59:06 -07:00 |
|
Andrew Kelley
|
32642ac9cb
|
for loop supports break and continue
See #51
|
2016-02-04 02:49:12 -07:00 |
|
Andrew Kelley
|
fdadab40c6
|
implement constant values for enums with payload
|
2016-02-04 02:11:50 -07:00 |
|
Andrew Kelley
|
3a9009b08e
|
fix crash when initializing struct if field is invalid
|
2016-02-04 01:06:31 -07:00 |
|
Andrew Kelley
|
1f9734d1ee
|
allow defining errors with the same name
they get the same value, too.
|
2016-02-04 00:58:45 -07:00 |
|
Andrew Kelley
|
2521afef69
|
add ability to call function pointer field
also introduce the self hosted tests
closes #108
|
2016-02-03 21:34:09 -07:00 |
|
Andrew Kelley
|
5c310f4343
|
skip analyzing parameters of invalid function call
|
2016-02-03 19:10:02 -07:00 |
|
Andrew Kelley
|
c3123158b7
|
fix handling of implicit casts in binary operators
|
2016-02-03 19:07:15 -07:00 |
|
Andrew Kelley
|
11a0644365
|
basic support for building a test target
|
2016-02-03 18:02:01 -07:00 |
|
Andrew Kelley
|
afdb47c32d
|
fix debug symbols for byval arguments
|
2016-02-03 03:32:45 -07:00 |
|
Andrew Kelley
|
f2fe231ddf
|
add @compile_var("is_release")
|
2016-02-03 02:21:28 -07:00 |
|
Andrew Kelley
|
b28f7d0808
|
types sized and aligned with LLVM target data layout API
|
2016-02-03 02:01:42 -07:00 |
|
Andrew Kelley
|
b04e64d300
|
add @compile_var builtin and "is_big_endian" compile var
|
2016-02-02 21:46:53 -07:00 |
|
Andrew Kelley
|
a50474e7cf
|
fix false positive error with same named methods in incomplete struct
|
2016-02-02 20:06:51 -07:00 |
|
Andrew Kelley
|
d3de73739f
|
fix various semantic analyzer crashes
|
2016-02-02 19:35:02 -07:00 |
|