[llvm] [ForceFunctionAttrs] Fix handling of conflicts for more attributes (PR #186304)

Justin Fargnoli via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 13 18:09:36 PDT 2026


================
@@ -45,10 +45,46 @@ static cl::opt<std::string> CSVFilePath(
         "add to them in the form of `f1,attr1` or `f2,attr2=str`."));
 
 static bool hasConflictingFnAttr(Attribute::AttrKind Kind, Function &F) {
-  if (Kind == Attribute::AlwaysInline)
-    return F.hasFnAttribute(Attribute::NoInline);
-  if (Kind == Attribute::NoInline)
+  switch (Kind) {
+  case Attribute::AlwaysInline:
+    return F.hasFnAttribute(Attribute::NoInline) ||
+           F.hasFnAttribute(Attribute::OptimizeNone);
+
+  case Attribute::NoInline:
     return F.hasFnAttribute(Attribute::AlwaysInline);
+
+  case Attribute::OptimizeNone:
+    return F.hasFnAttribute(Attribute::AlwaysInline) ||
----------------
justinfargnoli wrote:

ditto https://github.com/llvm/llvm-project/pull/186304/changes#r2934405790

https://github.com/llvm/llvm-project/pull/186304


More information about the llvm-commits mailing list