From 962447876696e364b450ef300d029c04739eab9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Mon, 3 Feb 2014 16:22:42 +0100 Subject: [PATCH] Exit gracefully if an external function name is used as a model local variable. Closes #599 --- ParsingDriver.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ParsingDriver.cc b/ParsingDriver.cc index 58311c0e..ba7bf5e6 100644 --- a/ParsingDriver.cc +++ b/ParsingDriver.cc @@ -342,6 +342,9 @@ ParsingDriver::add_expression_variable(string *name) || mod_file->symbol_table.getType(*name) == eLogTrend) error("Variable " + *name + " not allowed outside model declaration, because it is a trend variable."); + if (mod_file->symbol_table.getType(*name) == eExternalFunction) + error("Symbol '" + *name + "' is the name of a MATLAB/Octave function, and cannot be used as a variable."); + int symb_id = mod_file->symbol_table.getID(*name); expr_t id = data_tree->AddVariable(symb_id);