diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 6b4712a918be3c453e59d0a4b4ba1f04113ec96e..3100243f3f2abbf6d38c5b8e1668dbdc0a78c169 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -7144,6 +7144,8 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) {
       return new DarwinI386TargetInfo(Triple);
 
     switch (os) {
+    case llvm::Triple::CloudABI:
+      return new CloudABITargetInfo<X86_32TargetInfo>(Triple);
     case llvm::Triple::Linux: {
       switch (Triple.getEnvironment()) {
       default: