From 162137fd260b31633f1dfca850704309e2a2f6f6 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Mon, 20 Nov 2023 11:19:46 +0100 Subject: 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 --- gcc/rust/checks/errors/rust-ast-validation.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gcc') 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 (), "% parameter is only allowed in associated functions"); + if (function.is_variadic ()) + rust_error_at ( + function.get_function_params ().back ()->get_locus (), + "only foreign or % functions may be C-variadic"); + AST::ContextualASTVisitor::visit (function); } -- cgit v1.1