From f2c8fb0479f2f26742feb22bacfce27647d79eb3 Mon Sep 17 00:00:00 2001 From: Maciej Suminski Date: Fri, 22 Jan 2016 12:10:39 +0100 Subject: [PATCH] vhdlpp: Display an error message when calling a function with too many arguments. --- vhdlpp/expression_elaborate.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/vhdlpp/expression_elaborate.cc b/vhdlpp/expression_elaborate.cc index b80d25b9d..69dc36494 100644 --- a/vhdlpp/expression_elaborate.cc +++ b/vhdlpp/expression_elaborate.cc @@ -1118,6 +1118,13 @@ int elaborate_argument(Expression*expr, const SubprogramHeader*subp, if(subp) { const InterfacePort*param = subp->peek_param(idx); + if(!param) { + cerr << expr->get_fileline() + << ": error: Too many arguments when calling " + << subp->name() << "." << endl; + return 1; + } + // Enable reg_flag for variables that might be modified in subprograms if(param->mode == PORT_OUT || param->mode == PORT_INOUT) { if(const ExpName*e = dynamic_cast(expr)) {