src/AstGen.zig | 2 +- src/Module.zig | 2 +- src/Sema.zig | 187 +++++++++++++++++++++----------- src/arch/wasm/abi.zig | 8 ++ src/arch/x86_64/abi.zig | 24 +++- src/codegen/llvm.zig | 74 ++++++------- src/translate_c.zig | 4 + src/type.zig | 7 +- src/value.zig | 29 ++++- test/behavior/enum.zig | 7 ++ test/behavior/packed-struct.zig | 26 +++++ test/behavior/sizeof_and_typeof.zig | 11 ++ test/behavior/union.zig | 30 ++++- test/c_abi/cfuncs.c | 78 +++++-------- test/c_abi/main.zig | 33 ++---- test/cases/compile_errors/C_pointer_pointing_to_non_C_ABI_compatible_type_or_has_align_attr.zig | 2 +- test/cases/compile_errors/enum_backed_by_comptime_int_must_be_comptime.zig | 11 ++ test/cases/compile_errors/function_with_non-extern_non-packed_struct_parameter.zig | 2 +- test/cases/compile_errors/function_with_non-extern_non-packed_union_parameter.zig | 2 +- test/cases/compile_errors/int_literal_passed_as_variadic_arg.zig | 11 -- test/cases/compile_errors/noalias_param_coersion.zig | 20 ++++ test/cases/compile_errors/overflow_in_enum_value_allocation.zig | 14 +++ test/cases/compile_errors/specify_enum_tag_type_that_is_too_small.zig | 18 +++ test/cases/compile_errors/stage1/obj/overflow_in_enum_value_allocation.zig | 14 --- test/cases/compile_errors/stage1/obj/specify_enum_tag_type_that_is_too_small.zig | 18 --- test/cases/compile_errors/try_return.zig | 11 ++ test/cases/compile_errors/variadic_arg_validation.zig | 29 +++++ test/run_translated_c.zig | 26 +++-- test/standalone.zig | 3 + test/standalone/issue_12706/build.zig | 39 +++++++ test/standalone/issue_12706/main.zig | 12 ++ test/standalone/issue_12706/test.c | 11 ++ test/standalone/noreturn_call/as_arg.zig | 8 ++ test/standalone/noreturn_call/inline.zig | 10 ++ test/translate_c.zig | 30 ++--- 35 files changed, 558 insertions(+), 255 deletions(-)