aboutsummaryrefslogtreecommitdiff
path: root/lib/Lex
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2012-10-30 23:22:22 +0000
committerDavid Blaikie <dblaikie@gmail.com>2012-10-30 23:22:22 +0000
commit82c6dc72adc30e785ce5bc6e8b43ae92070d2e08 (patch)
treee096c14e70f29d9677c92f99111a6dd0b0b72bf5 /lib/Lex
parentb3fa55f18d7b3759b3a6547719cf5b3418370a96 (diff)
Handle string encoding diagnostics when there are too many invalid ranges.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167059 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Lex')
-rw-r--r--lib/Lex/LiteralSupport.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Lex/LiteralSupport.cpp b/lib/Lex/LiteralSupport.cpp
index 2896dc3bf7..91edf4f4a0 100644
--- a/lib/Lex/LiteralSupport.cpp
+++ b/lib/Lex/LiteralSupport.cpp
@@ -1425,7 +1425,8 @@ bool StringLiteralParser::CopyStringFragment(const Token &Tok,
const char *NextStart = resync_utf8(ErrorPtr, Fragment.end());
StringRef NextFragment(NextStart, Fragment.end()-NextStart);
- while (!ConvertUTF8toWide(CharByteWidth, NextFragment, ResultPtr,
+ while (!Builder.hasMaxRanges() &&
+ !ConvertUTF8toWide(CharByteWidth, NextFragment, ResultPtr,
ErrorPtrTmp)) {
const char *ErrorPtr = reinterpret_cast<const char *>(ErrorPtrTmp);
NextStart = resync_utf8(ErrorPtr, Fragment.end());