@@ -2388,18 +2388,20 @@ void Verifier::verifyFunctionAttrs(FunctionType *FT, AttributeList Attrs,
2388
2388
CheckFailed (" 'vscale_range' maximum must be power-of-two value" , V);
2389
2389
}
2390
2390
2391
- if (Attrs.hasFnAttr (" frame-pointer" )) {
2392
- StringRef FP = Attrs. getFnAttr ( " frame-pointer " ) .getValueAsString ();
2391
+ if (Attribute FPAttr = Attrs.getFnAttr (" frame-pointer" ); FPAttr. isValid ( )) {
2392
+ StringRef FP = FPAttr .getValueAsString ();
2393
2393
if (FP != " all" && FP != " non-leaf" && FP != " none" && FP != " reserved" )
2394
2394
CheckFailed (" invalid value for 'frame-pointer' attribute: " + FP, V);
2395
2395
}
2396
2396
2397
2397
// Check EVEX512 feature.
2398
- if (MaxParameterWidth >= 512 && Attrs.hasFnAttr (" target-features" ) &&
2399
- TT.isX86 ()) {
2400
- StringRef TF = Attrs.getFnAttr (" target-features" ).getValueAsString ();
2401
- Check (!TF.contains (" +avx512f" ) || !TF.contains (" -evex512" ),
2402
- " 512-bit vector arguments require 'evex512' for AVX512" , V);
2398
+ if (TT.isX86 () && MaxParameterWidth >= 512 ) {
2399
+ Attribute TargetFeaturesAttr = Attrs.getFnAttr (" target-features" );
2400
+ if (TargetFeaturesAttr.isValid ()) {
2401
+ StringRef TF = TargetFeaturesAttr.getValueAsString ();
2402
+ Check (!TF.contains (" +avx512f" ) || !TF.contains (" -evex512" ),
2403
+ " 512-bit vector arguments require 'evex512' for AVX512" , V);
2404
+ }
2403
2405
}
2404
2406
2405
2407
checkUnsignedBaseTenFuncAttr (Attrs, " patchable-function-prefix" , V);
0 commit comments