llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Timm Baeder (tbaederr) <details> <summary>Changes</summary> In large C TUs, it happens pretty frequently that we reject something via `Invalid()`, but nobody ever gets to see the diagnostics we emit. Just don't emit a diagnostic in that case. --- Full diff: https://github.com/llvm/llvm-project/pull/227640.diff 1 Files Affected: - (modified) clang/lib/AST/ByteCode/InterpHelpers.h (+4-3) ``````````diff diff --git a/clang/lib/AST/ByteCode/InterpHelpers.h b/clang/lib/AST/ByteCode/InterpHelpers.h index 50f0462a93f162..25881bbfe1a3bd 100644 --- a/clang/lib/AST/ByteCode/InterpHelpers.h +++ b/clang/lib/AST/ByteCode/InterpHelpers.h @@ -126,9 +126,10 @@ static inline llvm::RoundingMode getRoundingMode(FPOptions FPO) { } inline bool Invalid(InterpState &S, CodePtr OpPC) { - const SourceLocation &Loc = S.Current->getLocation(OpPC); - S.FFDiag(Loc, diag::note_invalid_subexpr_in_const_expr) - << S.Current->getRange(OpPC); + if (S.diagnosing()) + S.FFDiag(S.Current->getSource(OpPC), + diag::note_invalid_subexpr_in_const_expr) + << S.Current->getRange(OpPC); return false; } `````````` </details> https://github.com/llvm/llvm-project/pull/227640 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
