diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-11-20 11:19:46 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-01-30 12:36:44 +0100 |
commit | 162137fd260b31633f1dfca850704309e2a2f6f6 (patch) | |
tree | c2dc75fac5c44e48b63c4320e785fcd07718b917 /gcc/rust/checks/errors/rust-ast-validation.cc | |
parent | 685491f232459f6182899893a7326582e153f11e (diff) | |
download | gcc-162137fd260b31633f1dfca850704309e2a2f6f6.zip gcc-162137fd260b31633f1dfca850704309e2a2f6f6.tar.gz gcc-162137fd260b31633f1dfca850704309e2a2f6f6.tar.bz2 |
gccrs: Emit an error on variadic non extern functions
Variadic regular functions were recently added in the parser as they
should be rejected in the ast validation pass. This commit add the ast
validation pass rejecting this kind of variadic arguments.
gcc/rust/ChangeLog:
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
ast validation pass to reject variadic arguments on regular functions.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc/rust/checks/errors/rust-ast-validation.cc')
-rw-r--r-- | gcc/rust/checks/errors/rust-ast-validation.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/rust/checks/errors/rust-ast-validation.cc b/gcc/rust/checks/errors/rust-ast-validation.cc index 6732909..4142cc6 100644 --- a/gcc/rust/checks/errors/rust-ast-validation.cc +++ b/gcc/rust/checks/errors/rust-ast-validation.cc @@ -93,6 +93,11 @@ ASTValidation::visit (AST::Function &function) function.get_self_param ()->get_locus (), "%<self%> parameter is only allowed in associated functions"); + if (function.is_variadic ()) + rust_error_at ( + function.get_function_params ().back ()->get_locus (), + "only foreign or %<unsafe extern \"C\"%> functions may be C-variadic"); + AST::ContextualASTVisitor::visit (function); } |