rnk added inline comments.
> jlebar wrote in Sema.h:9258 > These diagnostics live until the end of codegen, and so are destroyed after > the ASTContext. > > I am becoming increasingly displeased with emitting these errors during > codegen. In particular, it makes it annoying to write tests. You cannot > test deferred and immediate errors in the same test, because if you have any > immediate errors, we never codegen, so we never emit the deferred ones. This > will also be a suboptimal user experience. > > The only serious alternative mooted thus far is emitting the deferred errors > when a function is marked used. But this is going to emit deferred errors if > e.g. two inline host+device functions have mutual recursion but are otherwise > never touched (so don't need to be codegen'ed). I am not sure if this will > be OK or not, but I need to look at it. > > If we move the errors to being emitted earlier, we won't need to do this > dance. The ASTContext should outlive IRgen, since the AST is allocated in its arena. Is there a separate diagnostic memory pool that I don't know about? https://reviews.llvm.org/D25139 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits