[clang] [llvm] [ARM] Emit an error when the hard-float ABI is enabled but can't be used. (PR #111334)
    Chris Copeland via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Wed Nov 13 22:56:34 PST 2024
    
    
  
================
@@ -311,11 +311,15 @@ ARMBaseTargetMachine::getSubtargetImpl(const Function &F) const {
     // function that reside in TargetOptions.
     resetTargetOptions(F);
     I = std::make_unique<ARMSubtarget>(TargetTriple, CPU, FS, *this, isLittle,
-                                        F.hasMinSize());
+                                       F.hasMinSize());
 
     if (!I->isThumb() && !I->hasARMOps())
       F.getContext().emitError("Function '" + F.getName() + "' uses ARM "
           "instructions, but the target does not support ARM mode execution.");
+
----------------
chrisnc wrote:
`getSubtargetImpl` takes a `const Function &` as a parameter, and looks at that function's attributes, and can give per-function diagnostics for the thumb check, so I believe it is not the "global" subtarget.
https://github.com/llvm/llvm-project/pull/111334
    
    
More information about the cfe-commits
mailing list