Author: Timm Bäder Date: 2022-11-07T09:42:41+01:00 New Revision: c8341a66159703de242ab8de362b59548cdda71e
URL: https://github.com/llvm/llvm-project/commit/c8341a66159703de242ab8de362b59548cdda71e DIFF: https://github.com/llvm/llvm-project/commit/c8341a66159703de242ab8de362b59548cdda71e.diff LOG: [clang][Interp][NFC] Avoid a getSource() call in the common case In the common (successful) case, we don't need the getSource() call, so move it to the two if statement bodies instead. Added: Modified: clang/lib/AST/Interp/Interp.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/Interp/Interp.cpp b/clang/lib/AST/Interp/Interp.cpp index a5984a21efb1..b22756a80345 100644 --- a/clang/lib/AST/Interp/Interp.cpp +++ b/clang/lib/AST/Interp/Interp.cpp @@ -201,8 +201,8 @@ bool CheckArray(InterpState &S, CodePtr OpPC, const Pointer &Ptr) { bool CheckLive(InterpState &S, CodePtr OpPC, const Pointer &Ptr, AccessKinds AK) { - const auto &Src = S.Current->getSource(OpPC); if (Ptr.isZero()) { + const auto &Src = S.Current->getSource(OpPC); if (Ptr.isField()) S.FFDiag(Src, diag::note_constexpr_null_subobject) << CSK_Field; @@ -213,6 +213,7 @@ bool CheckLive(InterpState &S, CodePtr OpPC, const Pointer &Ptr, } if (!Ptr.isLive()) { + const auto &Src = S.Current->getSource(OpPC); bool IsTemp = Ptr.isTemporary(); S.FFDiag(Src, diag::note_constexpr_lifetime_ended, 1) << AK << !IsTemp; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits