summaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorErich Keane <erich.keane@intel.com>2022-01-12 10:17:54 -0800
committerErich Keane <erich.keane@intel.com>2022-01-12 10:31:28 -0800
commit6e77ad11ffab71fa71629fe4df0af1ecefcfa649 (patch)
tree4af11b390412e70735e64ac0348a39fbc60f3dc1 /clang/lib/CodeGen/CodeGenModule.cpp
parenta70fe03961ddb483607861a79ce569a24757919f (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.cpp5
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;