[cfe-dev] Crash with -serialize
nicolasweber at gmx.de
Sat Aug 9 11:53:07 PDT 2008
`clang -serialize` does crash for all input files. This is because of
the following commit:
ParseAST now never releases the passed ASTConsumer. This is the
responsibility of the client.
While I understand why not deleting the Consumer is nice, it's not as
simple as this patch pretends: The TranslationUnit is a local variable
of ParseAST() and is destroyed as soon as the function exits. Most
Consumers keep a reference to the TU and do work in their destructor,
which will now be always run when the TU is already dead (e.g. the
So, either that commit is undone, or the TranslationUnit has to be
allocated on the stack somehow.
More information about the cfe-dev