diff options
| author | Erich Keane <erich.keane@intel.com> | 2022-01-12 10:17:54 -0800 |
|---|---|---|
| committer | Erich Keane <erich.keane@intel.com> | 2022-01-12 10:31:28 -0800 |
| commit | 6e77ad11ffab71fa71629fe4df0af1ecefcfa649 (patch) | |
| tree | 4af11b390412e70735e64ac0348a39fbc60f3dc1 /clang/lib/CodeGen/CodeGenModule.cpp | |
| parent | a70fe03961ddb483607861a79ce569a24757919f (diff) | |
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.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
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; |
