[clang] [llvm] [AArch64][Driver] Fix behavior of +nofeat modifier on -mcpu (PR #203458)
Tomas Matheson via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 29 01:54:37 PDT 2026
================
@@ -340,14 +340,22 @@ void AArch64::ExtensionSet::disable(ArchExtKind E) {
disable(Dep.Later);
}
+static void setEnableIfMandatory(AArch64::ExtensionSet &Exts,
+ AArch64::ExtensionInfo E) {
+ if (Exts.BaseArch->DefaultExts.test(E.ID))
+ Exts.Enabled.set(E.ID);
+}
+
void AArch64::ExtensionSet::addCPUDefaults(const CpuInfo &CPU) {
LLVM_DEBUG(llvm::dbgs() << "addCPUDefaults(" << CPU.Name << ")\n");
BaseArch = &CPU.Arch;
AArch64::ExtensionBitset CPUExtensions = CPU.getImpliedExtensions();
- for (const auto &E : Extensions)
+ for (const auto &E : Extensions) {
if (CPUExtensions.test(E.ID))
enable(E.ID);
+ setEnableIfMandatory(*this, E);
----------------
tommat01 wrote:
It's a bit odd to pass a reference to `*this` rather than making it a member of `ExtensionSet`
https://github.com/llvm/llvm-project/pull/203458
More information about the cfe-commits
mailing list