jlebar added a comment. Reid, I'd still like you to have a look at this one if you don't mind, since it's outside my and Art's core competencies.
================ Comment at: clang/lib/CodeGen/CodeGenModule.cpp:2886 @@ +2885,3 @@ + // Check if this function has diagnostics that should be emitted when we + // codegen it. If so, don't eit this function definition, but don't emit the + // diags just yet. Emitting an error during codegen stops codegen, and we ---------------- tra wrote: > eit->emit. > "don't do X, but don't do Y" construction sounds awkward to me. > I'd reword the whole comment in terms of what the code does -- if there are > diagnostics, only collect them to emit at the end of codegen. Otherwise, > proceed to emit function definition. > Thanks. I tried to reword it, phal. I also realized that this was skipping functions if they contained *any* deferred diags, but that's not right -- we only want to skip functions that contain deferred errors. Fixed that too. I wish I could use StoredDiagnostic instead of PartialDiagnosticAt, but I don't see a way to create a StoredDiagnostic for an error without setting the HasError bit in the DiagnosticEngine. I need to carefully avoid setting that bit, otherwise we don't even make it to codegen. (In fact it looks like the code for emitting diagnostics assumes that creating a StoredDiagnostic sets the bit, because I don't see it setting that bit when we emit the StoredDiagnostic.) https://reviews.llvm.org/D23241 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits