[cfe-dev] Crash with -serialize
Nico Weber
nicolasweber at gmx.de
Sat Aug 9 11:53:07 PDT 2008
Hi,
`clang -serialize` does crash for all input files. This is because of
the following commit:
URL: http://llvm.org/viewvc/llvm-project?rev=54502&view=rev
Log:
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
ASTSerializers).
So, either that commit is undone, or the TranslationUnit has to be
allocated on the stack somehow.
Nico
More information about the cfe-dev
mailing list