doc/docgen.zig | 1 + doc/langref.html.in | 24 ++-- lib/std/build/translate_c.zig | 32 +++-- lib/std/builtin.zig | 31 +++-- lib/std/debug.zig | 4 +- lib/std/json/test.zig | 12 +- lib/std/math/sqrt.zig | 1 - lib/std/mutex.zig | 29 ++--- lib/std/net.zig | 6 +- lib/std/os/linux.zig | 2 +- lib/std/os/linux/arm-eabi.zig | 6 +- lib/std/os/linux/arm64.zig | 2 +- lib/std/os/linux/i386.zig | 4 +- lib/std/os/linux/mipsel.zig | 4 +- lib/std/os/linux/riscv64.zig | 2 +- lib/std/os/linux/x86_64.zig | 2 +- lib/std/os/test.zig | 2 +- lib/std/os/uefi/protocols/simple_text_input_protocol.zig | 1 - lib/std/os/windows/advapi32.zig | 10 +- lib/std/os/windows/bits.zig | 2 +- lib/std/os/windows/kernel32.zig | 200 ++++++++++++++++---------------- lib/std/os/windows/ntdll.zig | 38 +++--- lib/std/os/windows/ole32.zig | 8 +- lib/std/os/windows/shell32.zig | 2 +- lib/std/os/windows/ws2_32.zig | 46 ++++---- lib/std/reset_event.zig | 26 ++--- lib/std/special/c.zig | 16 ++- lib/std/special/compiler_rt.zig | 48 ++++---- lib/std/special/compiler_rt/addXf3.zig | 12 +- lib/std/special/compiler_rt/arm/aeabi_dcmp.zig | 10 +- lib/std/special/compiler_rt/arm/aeabi_fcmp.zig | 10 +- lib/std/special/compiler_rt/ashlti3.zig | 2 +- lib/std/special/compiler_rt/ashrti3.zig | 2 +- lib/std/special/compiler_rt/aulldiv.zig | 4 +- lib/std/special/compiler_rt/aullrem.zig | 4 +- lib/std/special/compiler_rt/comparedf2.zig | 14 +-- lib/std/special/compiler_rt/comparesf2.zig | 14 +-- lib/std/special/compiler_rt/comparetf2.zig | 6 +- lib/std/special/compiler_rt/divdf3.zig | 2 +- lib/std/special/compiler_rt/divsf3.zig | 2 +- lib/std/special/compiler_rt/divti3.zig | 4 +- lib/std/special/compiler_rt/extendXfYf2.zig | 8 +- lib/std/special/compiler_rt/fixdfdi.zig | 2 +- lib/std/special/compiler_rt/fixdfsi.zig | 2 +- lib/std/special/compiler_rt/fixdfti.zig | 2 +- lib/std/special/compiler_rt/fixsfdi.zig | 2 +- lib/std/special/compiler_rt/fixsfsi.zig | 2 +- lib/std/special/compiler_rt/fixsfti.zig | 2 +- lib/std/special/compiler_rt/fixtfdi.zig | 2 +- lib/std/special/compiler_rt/fixtfsi.zig | 2 +- lib/std/special/compiler_rt/fixtfti.zig | 2 +- lib/std/special/compiler_rt/fixunsdfdi.zig | 2 +- lib/std/special/compiler_rt/fixunsdfsi.zig | 2 +- lib/std/special/compiler_rt/fixunsdfti.zig | 2 +- lib/std/special/compiler_rt/fixunssfdi.zig | 2 +- lib/std/special/compiler_rt/fixunssfsi.zig | 2 +- lib/std/special/compiler_rt/fixunssfti.zig | 2 +- lib/std/special/compiler_rt/fixunstfdi.zig | 2 +- lib/std/special/compiler_rt/fixunstfsi.zig | 2 +- lib/std/special/compiler_rt/fixunstfti.zig | 2 +- lib/std/special/compiler_rt/floatdidf.zig | 2 +- lib/std/special/compiler_rt/floatsiXf.zig | 6 +- lib/std/special/compiler_rt/floattidf.zig | 2 +- lib/std/special/compiler_rt/floattisf.zig | 2 +- lib/std/special/compiler_rt/floattitf.zig | 2 +- lib/std/special/compiler_rt/floatundidf.zig | 2 +- lib/std/special/compiler_rt/floatunditf.zig | 2 +- lib/std/special/compiler_rt/floatunsidf.zig | 2 +- lib/std/special/compiler_rt/floatunsitf.zig | 2 +- lib/std/special/compiler_rt/floatuntidf.zig | 2 +- lib/std/special/compiler_rt/floatuntisf.zig | 2 +- lib/std/special/compiler_rt/floatuntitf.zig | 2 +- lib/std/special/compiler_rt/lshrti3.zig | 2 +- lib/std/special/compiler_rt/modti3.zig | 4 +- lib/std/special/compiler_rt/mulXf3.zig | 6 +- lib/std/special/compiler_rt/muldi3.zig | 2 +- lib/std/special/compiler_rt/mulodi4.zig | 2 +- lib/std/special/compiler_rt/muloti4.zig | 2 +- lib/std/special/compiler_rt/multi3.zig | 4 +- lib/std/special/compiler_rt/negXf2.zig | 4 +- lib/std/special/compiler_rt/popcountdi2.zig | 2 +- lib/std/special/compiler_rt/stack_probe.zig | 12 +- lib/std/special/compiler_rt/truncXfYf2.zig | 10 +- lib/std/special/compiler_rt/udivmoddi4.zig | 2 +- lib/std/special/compiler_rt/udivmodti4.zig | 4 +- lib/std/special/compiler_rt/udivti3.zig | 4 +- lib/std/special/compiler_rt/umodti3.zig | 4 +- lib/std/spinlock.zig | 12 +- lib/std/start.zig | 16 +-- lib/std/thread.zig | 6 +- lib/std/unicode/throughput_test.zig | 2 +- lib/std/zig/ast.zig | 1 + lib/std/zig/parse.zig | 13 +++ lib/std/zig/parser_test.zig | 18 ++- lib/std/zig/render.zig | 32 ++++- lib/std/zig/tokenizer.zig | 3 + src-self-hosted/translate_c.zig | 23 +++- src-self-hosted/type.zig | 3 +- src/all_types.hpp | 32 +++-- src/analyze.cpp | 173 +++++++++++++++++---------- src/analyze.hpp | 3 +- src/ast_render.cpp | 5 + src/codegen.cpp | 116 ++++++++++++------ src/ir.cpp | 102 ++++++++++------ src/parser.cpp | 39 ++++--- src/tokenizer.cpp | 6 +- src/tokenizer.hpp | 3 +- src/zig_llvm.cpp | 53 ++++++++- src/zig_llvm.h | 51 +++++++- test/compile_errors.zig | 40 +++---- test/src/translate_c.zig | 14 +++ test/stage1/behavior/align.zig | 6 +- test/stage1/behavior/bugs/1310.zig | 4 +- test/stage1/behavior/cast.zig | 4 +- test/stage1/behavior/fn.zig | 4 +- test/stage1/behavior/misc.zig | 2 +- test/stage1/behavior/struct.zig | 4 +- test/stage1/behavior/type_info.zig | 4 +- test/standalone/load_dynamic_library/main.zig | 2 +- test/translate_c.zig | 76 ++++++++---- 120 files changed, 1015 insertions(+), 640 deletions(-)