Fixed a problem in r19589.

Several systems failed to compile the array allocation of the TokenArray.

llvm-svn: 219590
diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp
index 55919fd..7f19abf 100644
--- a/clang/lib/Parse/ParsePragma.cpp
+++ b/clang/lib/Parse/ParsePragma.cpp
@@ -1877,8 +1877,8 @@
   EOFTok.setLocation(Tok.getLocation());
   ValueList.push_back(EOFTok); // Terminates expression for parsing.
 
-  Token *TokenArray =
-      new (PP.getPreprocessorAllocator()) Token[ValueList.size()];
+  Token *TokenArray = (Token *)PP.getPreprocessorAllocator().Allocate(
+      ValueList.size() * sizeof(Token), llvm::alignOf<Token>());
   std::copy(ValueList.begin(), ValueList.end(), TokenArray);
   Info.Toks = TokenArray;
   Info.TokSize = ValueList.size();