|
@@ -161,6 +161,9 @@ static void cCallFunction(const char* literal, bool noReturn) {
|
|
|
cAddInt(arguments);
|
|
|
cAddOperation(OP_NOTHING);
|
|
|
} else {
|
|
|
+ if(!noReturn && !f->returns) {
|
|
|
+ cError("function '%s' needs a return value on line %d", f->name, line);
|
|
|
+ }
|
|
|
cAddInt(f->address);
|
|
|
cAddInt(arguments);
|
|
|
if(f->returns && noReturn) {
|
|
@@ -358,6 +361,8 @@ static void cLinkQueuedFunctions() {
|
|
|
Function* f = fmSearch(&functions, functions.queue[i].name, functions.queue[i].arguments);
|
|
|
if(f == NULL) {
|
|
|
cError("unknown function on line %d", functions.queue[i].line);
|
|
|
+ } else if(!functions.queue[i].noReturn && !f->returns) {
|
|
|
+ cError("function '%s' needs a return value on line %d", f->name, functions.queue[i].line);
|
|
|
}
|
|
|
cSetInt(functions.queue[i].reserved, f->address);
|
|
|
if(functions.queue[i].noReturn && f->returns) {
|