[cfe-dev] Crash with -serialize
Argiris Kirtzidis
akyrtzi at gmail.com
Sat Aug 9 14:27:33 PDT 2008
Nico Weber wrote:
> 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.
>
How about having all Consumers do work in the HandleTranslationUnit
method, instead of their destructor, wouldn't this fix the problem ?
-Argiris
More information about the cfe-dev
mailing list