IRGen: Don't emit opaque type descriptors twice

rdar://50500620
This commit is contained in:
Arnold Schwaighofer
2019-05-06 09:00:44 -07:00
parent f5ba89d372
commit fc8ff70be7
3 changed files with 20 additions and 0 deletions

View File

@@ -886,6 +886,8 @@ void IRGenModule::maybeEmitOpaqueTypeDecl(OpaqueTypeDecl *opaque) {
// so that remote ast/mirror can recover them.
addRuntimeResolvableType(opaque);
emitOpaqueTypeDecl(opaque);
if (IRGen.hasLazyMetadata(opaque))
IRGen.markOpaqueTypeDescriptorEmitted(opaque);
} else if (!IRGen.hasLazyMetadata(opaque)) {
emitOpaqueTypeDecl(opaque);
}