reimplement r90860, fixing a couple of problems:
1. Don't make a copy of LangOptions every time a lexer is created.
2. Don't make CharInfo global mutable state.
3. Fix the implementation to properly treat ^Z as EOF instead of as
   horizontal whitespace, which matches the semantic implemented by VC++.

llvm-svn: 91586
diff --git a/clang/test/Lexer/msdos-cpm-eof.c b/clang/test/Lexer/msdos-cpm-eof.c
index 0a6956d..9ef6e32 100644
--- a/clang/test/Lexer/msdos-cpm-eof.c
+++ b/clang/test/Lexer/msdos-cpm-eof.c
@@ -1,5 +1,7 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -fms-extensions %s
 
-int a;
+int x; 
 
 
+
+I am random garbage after ^Z