[embedded][ptrauth] Guard extra ptrauth verification on objc interop being enabled.

This verification runs on ObjC briging types which are not present in embedded stdlib or when objc interop is not enabled.
This commit is contained in:
zoecarver
2023-09-18 09:36:38 -07:00
committed by Kuba Mracek
parent 9c53465948
commit bed427b29d
2 changed files with 13 additions and 0 deletions

View File

@@ -196,6 +196,8 @@ static void sanityCheckStdlib(IRGenModule &IGM) {
// Only run the sanity check when we're building the real stdlib.
if (!lookupSimple(IGM.getSwiftModule(), { "String" })) return;
if (!IGM.ObjCInterop) return;
checkPointerAuthAssociatedTypeDiscriminator(IGM, { "_ObjectiveCBridgeable", "_ObjectiveCType" }, SpecialPointerAuthDiscriminators::ObjectiveCTypeDiscriminator);
checkPointerAuthWitnessDiscriminator(IGM, { "_ObjectiveCBridgeable", "_bridgeToObjectiveC" }, SpecialPointerAuthDiscriminators::bridgeToObjectiveCDiscriminator);
checkPointerAuthWitnessDiscriminator(IGM, { "_ObjectiveCBridgeable", "_forceBridgeFromObjectiveC" }, SpecialPointerAuthDiscriminators::forceBridgeFromObjectiveCDiscriminator);