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