From 7c53fc4fe1308f5b2a7527d14ea41fabb18109b8 Mon Sep 17 00:00:00 2001 From: Tom Honermann Date: Fri, 25 Mar 2022 15:38:08 -0700 Subject: [clang] Emit target_clones resolver functions as COMDAT. Previously, resolver functions synthesized for target_clones multiversion functions were not emitted as COMDAT. Now fixed. --- clang/lib/CodeGen/CodeGenModule.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'clang/lib/CodeGen/CodeGenModule.cpp') diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 4d24c33f51d0..ddcf564e688f 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -3454,6 +3454,10 @@ void CodeGenModule::EmitTargetClonesResolver(GlobalDecl GD) { Options.emplace_back(cast(Func), Architecture, Feature); } + if (supportsCOMDAT()) + ResolverFunc->setComdat( + getModule().getOrInsertComdat(ResolverFunc->getName())); + const TargetInfo &TI = getTarget(); std::stable_sort( Options.begin(), Options.end(), -- cgit v1.2.3