diff --git a/lib/ClangImporter/ImportMacro.cpp b/lib/ClangImporter/ImportMacro.cpp index 357a5625ec958..b11d6de5d8295 100644 --- a/lib/ClangImporter/ImportMacro.cpp +++ b/lib/ClangImporter/ImportMacro.cpp @@ -377,6 +377,12 @@ namespace { ValueDecl *importDeclAlias(ClangImporter::Implementation &clang, swift::DeclContext *DC, const clang::ValueDecl *D, Identifier alias) { + if (DC->getASTContext().LangOpts.Target.isOSDarwin() && + DC->getParentModule()->getName().str() == StringRef("_stdio") && + llvm::any_of(llvm::ArrayRef{"stdin", "stdout", "stderr"}, + [alias = alias.str()](StringRef Id) { return alias == Id; })) + return nullptr; + // Variadic functions cannot be imported into Swift. // FIXME(compnerd) emit a diagnostic for the missing diagnostic. if (const auto *FD = dyn_cast(D)) diff --git a/test/ClangImporter/ignore-darwin-aliasing.swift b/test/ClangImporter/ignore-darwin-aliasing.swift new file mode 100644 index 0000000000000..90a172eb7f89b --- /dev/null +++ b/test/ClangImporter/ignore-darwin-aliasing.swift @@ -0,0 +1,4 @@ +// RUN: %target-typecheck-verify-swift %s +// REQUIRES: VENDOR=apple + +import var Darwin.stderr