From 6e77ad11ffab71fa71629fe4df0af1ecefcfa649 Mon Sep 17 00:00:00 2001 From: Erich Keane Date: Wed, 12 Jan 2022 10:17:54 -0800 Subject: Add an assert in cpudispatch emit to try to track down an error. I'm attempting to debug an issue that I can only get to happen on godbolt, where the cpu-dispatch resolver for an out of line member function is generated with the wrong name, causing a link failure. --- clang/lib/CodeGen/CodeGenModule.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'clang/lib/CodeGen/CodeGenModule.cpp') diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 6d6f154f45bf..d824cb398050 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -3492,11 +3492,14 @@ void CodeGenModule::emitCPUDispatchDefinition(GlobalDecl GD) { llvm::Type *ResolverType; GlobalDecl ResolverGD; - if (getTarget().supportsIFunc()) + if (getTarget().supportsIFunc()) { ResolverType = llvm::FunctionType::get( llvm::PointerType::get(DeclTy, Context.getTargetAddressSpace(FD->getType())), false); + assert(ResolverName.endswith(".resolver") && + "CPUDispatch IFunc resolver doesn't end with .resolver?"); + } else { ResolverType = DeclTy; ResolverGD = GD; -- cgit v1.2.3