Skip to content

Commit 3dd0e4c

Browse files
Merge pull request #24516 from aschwaighofer/dont_emit_opaque_type_descriptor_twice_5.1
[5.1] IRGen: Don't emit opaque type descriptors twice
2 parents b2d2b01 + ab9b778 commit 3dd0e4c

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

lib/IRGen/GenStruct.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -885,7 +885,10 @@ void IRGenModule::maybeEmitOpaqueTypeDecl(OpaqueTypeDecl *opaque) {
885885
// then emit all opaque type descriptors and make them runtime-discoverable
886886
// so that remote ast/mirror can recover them.
887887
addRuntimeResolvableType(opaque);
888-
emitOpaqueTypeDecl(opaque);
888+
if (IRGen.hasLazyMetadata(opaque))
889+
IRGen.noteUseOfOpaqueTypeDescriptor(opaque);
890+
else
891+
emitOpaqueTypeDecl(opaque);
889892
} else if (!IRGen.hasLazyMetadata(opaque)) {
890893
emitOpaqueTypeDecl(opaque);
891894
}

0 commit comments

Comments
 (0)