On Mon, Apr 25, 2016 at 1:04 PM, Reid Kleckner <r...@google.com> wrote:

> On Fri, Apr 22, 2016 at 1:58 PM, Richard Smith <rich...@metafoo.co.uk>
> wrote:
>>
>> This seems like a fragile thing to rely on. What about template
>> instantiation performed at end of TU? (I /think/ that case is currently
>> fine because all the kinds of template we instantiate ultimately do result
>> in a call to HandleTopLevelDecl or some other ASTConsumer callback, but I
>> don't really like relying on that.)
>>
>> Could we trigger processing of any remaining deferred declarations in
>> HandleTranslationUnit?
>>
>
> We could, but we already have this assert in the destructor:
>       // There should normally not be any leftover inline method
> definitions.
>       assert(DeferredInlineMethodDefinitions.empty() ||
>              Diags.hasErrorOccurred());
>
> If we ever break the invariant that HandleTopLevelDecl will be called some
> time after deferring a decl, we will find out about it eventually.
>

OK. This seems like a fairly arbitrary thing to have in the ASTConsumer
contract, but in practice it does seem like it ought to hold.
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to