Tested on rev1558. Likely related to http://www.gamedev.net/topic/639247-import-function-with-default-argument/ (indeed the code is a chopped down version of the one found there). The following two modules crash on compilation:
// mod1
import void g(bool dummy, int x = -1) from "mod2";
void f(bool dummy, int x)
{
}
void run()
{
f(true, 0);
f(true, 0);
g(false);
}
// mod2
import void run() from "mod1";
void g(bool dummy, int x = -1)
{
}
class T
{
T()
{
run();
}
};
T Dummy;
This should give an error saying that an unbound function has been called, but instead it crashes (null pointer access) with the following callstack:
asCTypeInfo::operator= + 110 asCArray<asSDeferredParam>::PushLast + 78, as_array.h (180) asCCompiler::AfterFunctionCall + 403, as_compiler.cpp (7711) asCCompiler::PerformFunctionCall + 1450, as_compiler.cpp (11745) asCCompiler::MakeFunctionCall + 563, as_compiler.cpp (10071) asCCompiler::CompileFunctionCall + 1957, as_compiler.cpp (8203) asCCompiler::CompileExpressionValue + 1919, as_compiler.cpp (7256) asCCompiler::CompileExpressionTerm + 169, as_compiler.cpp (6655) asCCompiler::CompilePostFixExpression + 296, as_compiler.cpp (6603) asCCompiler::CompileExpression + 277, as_compiler.cpp (6579) asCCompiler::CompileCondition + 2440, as_compiler.cpp (6534) asCCompiler::CompileAssignment + 420, as_compiler.cpp (6344) asCCompiler::CompileExpressionStatement + 152, as_compiler.cpp (3304) asCCompiler::CompileStatement + 145, as_compiler.cpp (2520) asCCompiler::CompileStatementBlock + 260, as_compiler.cpp (1016) asCCompiler::CompileFunction + 319, as_compiler.cpp (546) asCBuilder::CompileFunctions + 434, as_builder.cpp (709) asCBuilder::Build + 41, as_builder.cpp (241) asCModule::Build + 110, as_module.cpp (223)
Removing any code makes the crash go away, leaving the expected error message, but I am unsure whether default arguments are necessary in the sample to see the crash.