summaryrefslogtreecommitdiffstats
path: root/clang/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
commita0613170b41e78692711f7fc5528b85386a88ffc (patch)
tree8196d698597fe654e3d1fd9800f7077b28c85cc7 /clang/lib/Lex
parent2a523d864d387f11430bd6a6354ef14b9f4fd8b6 (diff)
downloadbcm5719-llvm-a0613170b41e78692711f7fc5528b85386a88ffc.tar.gz
bcm5719-llvm-a0613170b41e78692711f7fc5528b85386a88ffc.zip
Handle string encoding diagnostics when there are too many invalid ranges.
llvm-svn: 167059
Diffstat (limited to 'clang/lib/Lex')
-rw-r--r--clang/lib/Lex/LiteralSupport.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Lex/LiteralSupport.cpp b/clang/lib/Lex/LiteralSupport.cpp
index 2896dc3bf7d..91edf4f4a04 100644
--- a/clang/lib/Lex/LiteralSupport.cpp
+++ b/clang/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());
OpenPOWER on IntegriCloud