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.