@@ -445,17 +445,27 @@ extension Driver {
445
445
parsedOptions. getLastArgument ( . libraryLevel) ? . asSingle == " api "
446
446
447
447
guard
448
- parsedOptions. hasArgument ( . enableLibraryEvolution) ,
449
- parsedOptions. hasFlag ( positive: . verifyEmittedModuleInterface,
450
- negative: . noVerifyEmittedModuleInterface,
451
- default: onByDefault) ,
448
+ // Only verify modules with library evolution.
449
+ parsedOptions. hasArgument ( . enableLibraryEvolution) ,
450
+
451
+ // Only verify when requested, on by default and not disabled.
452
+ parsedOptions. hasFlag ( positive: . verifyEmittedModuleInterface,
453
+ negative: . noVerifyEmittedModuleInterface,
454
+ default: onByDefault) ,
452
455
453
456
// Don't verify by default modules emitted from a merge-module job
454
457
// as it's more likely to be invalid.
455
458
emitModuleSeparately || compilerMode == . singleCompile ||
456
- parsedOptions. hasFlag ( positive: . verifyEmittedModuleInterface,
457
- negative: . noVerifyEmittedModuleInterface,
458
- default: false )
459
+ parsedOptions. hasFlag ( positive: . verifyEmittedModuleInterface,
460
+ negative: . noVerifyEmittedModuleInterface,
461
+ default: false ) ,
462
+
463
+ // Don't verify by default modules emitting a compatibility header. This is
464
+ // unsupported as the headers are merged after all archs are built. rdar://90864986
465
+ self . objcGeneratedHeaderPath == nil ||
466
+ parsedOptions. hasFlag ( positive: . verifyEmittedModuleInterface,
467
+ negative: . noVerifyEmittedModuleInterface,
468
+ default: false )
459
469
else { return }
460
470
461
471
let optIn = env [ " ENABLE_DEFAULT_INTERFACE_VERIFIER " ] != nil ||
0 commit comments