diff options
author | David Blaikie <dblaikie@gmail.com> | 2012-10-30 23:22:22 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2012-10-30 23:22:22 +0000 |
commit | a0613170b41e78692711f7fc5528b85386a88ffc (patch) | |
tree | 8196d698597fe654e3d1fd9800f7077b28c85cc7 /clang/lib/Lex | |
parent | 2a523d864d387f11430bd6a6354ef14b9f4fd8b6 (diff) | |
download | bcm5719-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.cpp | 3 |
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()); |