Make VectorType printing less broken.
 - Print size as number of elements times "sizeof(elt type)", not
   perfect but better than just printing the completely wrong type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57100 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp
index e35525d..74e52fe 100644
--- a/lib/AST/Type.cpp
+++ b/lib/AST/Type.cpp
@@ -921,11 +921,11 @@
 }
 
 void VectorType::getAsStringInternal(std::string &S) const {
+  // FIXME: We prefer to print the size directly here, but have no way
+  // to get the size of the type.
   S += " __attribute__((__vector_size__(";
-  // FIXME: should multiply by element size somehow.
-  S += llvm::utostr_32(NumElements*4); // convert back to bytes.
-  S += ")))";
-  ElementType.getAsStringInternal(S);
+  S += llvm::utostr_32(NumElements); // convert back to bytes.
+  S += " * sizeof(" + ElementType.getAsString() + "))))";
 }
 
 void ExtVectorType::getAsStringInternal(std::string &S) const {