From: Owen Pan Date: Wed, 8 May 2019 13:49:17 +0000 (+0000) Subject: [clang] Fix a bug that reports UTF32 (LE) files as UTF16 (LE) ones X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1b0b08fd71d6b86e62deaf473f716b0a12899dfd;p=clang [clang] Fix a bug that reports UTF32 (LE) files as UTF16 (LE) ones Also fix a typo for the SCSU byte order mark. Differential Revision: https://reviews.llvm.org/D61628 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@360256 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp index 1b139c6552..0ffad1bc47 100644 --- a/lib/Basic/SourceManager.cpp +++ b/lib/Basic/SourceManager.cpp @@ -167,16 +167,16 @@ const llvm::MemoryBuffer *ContentCache::getBuffer(DiagnosticsEngine &Diag, // http://en.wikipedia.org/wiki/Byte_order_mark for more information. StringRef BufStr = Buffer.getPointer()->getBuffer(); const char *InvalidBOM = llvm::StringSwitch(BufStr) - .StartsWith("\xFE\xFF", "UTF-16 (BE)") - .StartsWith("\xFF\xFE", "UTF-16 (LE)") .StartsWith(llvm::StringLiteral::withInnerNUL("\x00\x00\xFE\xFF"), "UTF-32 (BE)") .StartsWith(llvm::StringLiteral::withInnerNUL("\xFF\xFE\x00\x00"), "UTF-32 (LE)") + .StartsWith("\xFE\xFF", "UTF-16 (BE)") + .StartsWith("\xFF\xFE", "UTF-16 (LE)") .StartsWith("\x2B\x2F\x76", "UTF-7") .StartsWith("\xF7\x64\x4C", "UTF-1") .StartsWith("\xDD\x73\x66\x73", "UTF-EBCDIC") - .StartsWith("\x0E\xFE\xFF", "SDSU") + .StartsWith("\x0E\xFE\xFF", "SCSU") .StartsWith("\xFB\xEE\x28", "BOCU-1") .StartsWith("\x84\x31\x95\x33", "GB-18030") .Default(nullptr);