diff --git a/lib/IRGen/IRGenModule.cpp b/lib/IRGen/IRGenModule.cpp index b36302a16c0be..b1ede0772218d 100644 --- a/lib/IRGen/IRGenModule.cpp +++ b/lib/IRGen/IRGenModule.cpp @@ -1641,7 +1641,8 @@ bool IRGenModule::useDllStorage() { return ::useDllStorage(Triple); } bool IRGenModule::shouldPrespecializeGenericMetadata() { auto canPrespecializeTarget = - (Triple.isOSDarwin() || Triple.isTvOS() || Triple.isOSLinux()); + (Triple.isOSDarwin() || Triple.isTvOS() || + (Triple.isOSLinux() && !(Triple.isARM() && Triple.isArch32Bit()))); if (canPrespecializeTarget && isStandardLibrary()) { return true; }