diff options
| author | Tw <tw19881113@gmail.com> | 2024-12-06 11:42:09 +0800 |
|---|---|---|
| committer | Alex Rønne Petersen <alex@alexrp.com> | 2025-02-17 05:28:11 +0100 |
| commit | d7b93c78769360c954a364613c1c1b382020da0a (patch) | |
| tree | 363328ae0821551f48c9079ef8fd84c38f2835cf /src/Sema.zig | |
| parent | 86064e66d60241ae1c56c6852ebd1ad880edfcce (diff) | |
| download | zig-d7b93c78769360c954a364613c1c1b382020da0a.tar.gz zig-d7b93c78769360c954a364613c1c1b382020da0a.zip | |
Sema: make source location in checkCallConvSupportsVarArgs more meaningful
As calling convention may not be specified explicitly in the source,
so use va_arg's location instead.
Signed-off-by: Tw <tw19881113@gmail.com>
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 16765d1a89..c513962d89 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -9669,7 +9669,13 @@ fn funcCommon( if (is_generic) { return sema.fail(block, func_src, "generic function cannot be variadic", .{}); } - try sema.checkCallConvSupportsVarArgs(block, cc_src, cc); + const va_args_src = block.src(.{ + .fn_proto_param = .{ + .fn_proto_node_offset = src_node_offset, + .param_index = @intCast(block.params.len), // va_arg must be the last parameter + }, + }); + try sema.checkCallConvSupportsVarArgs(block, va_args_src, cc); } const ret_poison = bare_return_type.isGenericPoison(); |
