BlockPointerSyntheticFrontEnd does a CopyType which results in it copying the type back into its own context. This will result in a call to ASTImporterDelegate::setOrigin with &decl->getASTContext() == origin.ctx this can result in an infinite recursion later on in ASTImporter since it will attempt to find the decl in its origin which will be itself.
See: rdar://problem/73618836
4 spaces indentation instead of 3 (2 would probably be better, but this was already written with 4 so let's just keep the file in one code style).