diff --git a/Clang_utils.cpp b/Clang_utils.cpp
index d1ac0e7007645906364e98eb736407511b98cd4f..253b5d359880b85b2a6a26c4ea878299349d3a51 100644
--- a/Clang_utils.cpp
+++ b/Clang_utils.cpp
@@ -24,6 +24,8 @@
 
 #include "Clang_utils.h"
 #include "ClangVisitor.h"
+#include <clang/AST/Type.h>
+#include <llvm/Support/Casting.h>
 
 extern "C" {
 
@@ -1857,7 +1859,12 @@ Clang_utils::makePlainType(
                 exp_node_Constant(compilation_constant_IntCst(
                   IINT,ICLITERAL,arrayType->getNumElements())))));
         return typ_Array(arrayKind);
-      }
+    }
+    case clang::Type::UnaryTransform: {
+      auto utt = llvm::dyn_cast<const clang::UnaryTransformType>(type);
+      auto integer_type = utt->getUnderlyingType();
+      return makePlainType(loc, integer_type, declRegistration, isPOD);
+    }
     case clang::Type::BlockPointer:
         unsupported_kind = "block pointer"; break;
     case clang::Type::Complex:
@@ -2877,7 +2884,7 @@ Clang_utils::logicArithmeticPromotion(
         return elaborated->isSugared()
           ? logicArithmeticPromotion(loc, elaborated->desugar().getTypePtr())
           : NULL;
-      }
+    }
     default: break;
   }
   return NULL;