Heyas,
I just saw the latest CVS changes to tcc.c,
preprocess_init() now sets macro_ptr = NULL and it's called by
tcc_compile() among others,
the problem is, macro_ptr != NULL and is used during tcc_new()
*before* tcc_compile()
When tcc_new() is called after a bad compile, macro_ptr will cause
tcc_define_symbol()
to throw an error, preprocess_init()
tcc_new() should call preprocess_init() also?
// -- test program ---------
#include "libtcc.h"
int main()
{
TCCState * tcc = tcc_new();
tcc_add_file(tcc, "bad.c");
tcc_delete(tcc);
tcc=tcc_new(); // error about invalid macro
tcc_delete(tcc);
return 0;
}
// bad.c ----
void bar()
{
this_is_bad
}
int main()
{
bar();
}
Kind Regards,
Sam K
_______________________________________________
Tinycc-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/tinycc-devel