[clang] 5b310a1 - [clang][Interp] Ignore lambda static invoker frames in backtraces
Timm Bäder via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 16 04:57:57 PDT 2024
Author: Timm Bäder
Date: 2024-07-16T13:57:41+02:00
New Revision: 5b310a1c3c5aabae325934a6475e93ea8b71cdc2
URL: https://github.com/llvm/llvm-project/commit/5b310a1c3c5aabae325934a6475e93ea8b71cdc2
DIFF: https://github.com/llvm/llvm-project/commit/5b310a1c3c5aabae325934a6475e93ea8b71cdc2.diff
LOG: [clang][Interp] Ignore lambda static invoker frames in backtraces
See comment. No test but this is neccessary for a later commit.
Added:
Modified:
clang/lib/AST/Interp/InterpFrame.cpp
Removed:
################################################################################
diff --git a/clang/lib/AST/Interp/InterpFrame.cpp b/clang/lib/AST/Interp/InterpFrame.cpp
index 383380f485e03..d3f3e216b7eb2 100644
--- a/clang/lib/AST/Interp/InterpFrame.cpp
+++ b/clang/lib/AST/Interp/InterpFrame.cpp
@@ -158,7 +158,9 @@ void InterpFrame::describe(llvm::raw_ostream &OS) const {
// diagnose them. The 'in call to' diagnostics for them add no value to the
// user _and_ it doesn't generally work since the argument types don't always
// match the function prototype. Just ignore them.
- if (const auto *F = getFunction(); F && F->isBuiltin())
+ // Similarly, for lambda static invokers, we would just print __invoke().
+ if (const auto *F = getFunction();
+ F && (F->isBuiltin() || F->isLambdaStaticInvoker()))
return;
const FunctionDecl *F = getCallee();
More information about the cfe-commits
mailing list