Searched refs:ThisTokBegin (Results 1 - 3 of 3) sorted by relevance
/freebsd-10.0-release/contrib/llvm/tools/clang/lib/Lex/ |
H A D | LiteralSupport.cpp | 77 static unsigned ProcessCharEscape(const char *ThisTokBegin, argument 105 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 111 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 134 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 159 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 182 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 193 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 202 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 206 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 217 static bool ProcessUCNEscape(const char *ThisTokBegin, cons argument 289 MeasureUCNEscape(const char *ThisTokBegin, const char *&ThisTokBuf, const char *ThisTokEnd, unsigned CharByteWidth, const LangOptions &Features, bool &HadError) argument 324 EncodeUCNEscape(const char *ThisTokBegin, const char *&ThisTokBuf, const char *ThisTokEnd, char *&ResultBuf, bool &HadError, FullSourceLoc Loc, unsigned CharByteWidth, DiagnosticsEngine *Diags, const LangOptions &Features) argument 812 assert(C < radix && �); CharVal = C; OldVal = Val; Val *= RadixVal; OverflowOccurred |= Val.udiv(RadixVal) != OldVal; Val += CharVal; OverflowOccurred |= Val.ult(CharVal); } return OverflowOccurred; } llvm::APFloat::opStatus NumericLiteralParser::GetFloatValue(llvm::APFloat &Result) { using llvm::APFloat; unsigned n = std::min(SuffixBegin - ThisTokBegin, ThisTokEnd - ThisTokBegin); return Result.convertFromString(StringRef(ThisTokBegin, n), APFloat::rmNearestTiesToEven); } CharLiteralParser::CharLiteralParser(const char *begin, const char *end, SourceLocation Loc, Preprocessor &PP, tok::TokenKind kind) { HadError = false; Kind = kind; const char *TokBegin = begin; if (Kind != tok::char_constant) { ++begin; } assert(begin[0] == � && �); ++begin; if (end[-1] != �) { const char *UDSuffixEnd = end; do { --end; } while (end[-1] != �); UDSuffixBuf.assign(end, UDSuffixEnd); UDSuffixOffset = end - TokBegin; } assert(end != begin && �); --end; assert(PP.getTargetInfo().getCharWidth() == 8 && �); assert(PP.getTargetInfo().getIntWidth() <= 64 && (PP.getTargetInfo().getIntWidth() & 7) == 0 && �); assert(PP.getTargetInfo().getWCharWidth() <= 64 && �); SmallVector<uint32_t,4> codepoint_buffer; codepoint_buffer.resize(end-begin); uint32_t *buffer_begin = &codepoint_buffer.front(); uint32_t *buffer_end = buffer_begin + codepoint_buffer.size(); uint32_t largest_character_for_kind; if (tok::wide_char_constant == Kind) { largest_character_for_kind = 0xFFFFFFFFu >> (32-PP.getTargetInfo().getWCharWidth()); } else if (tok::utf16_char_constant == Kind) { largest_character_for_kind = 0xFFFF; } else if (tok::utf32_char_constant == Kind) { largest_character_for_kind = 0x10FFFF; } else { largest_character_for_kind = 0x7Fu; } while (begin!=end) { if (begin[0] != �) { char const *start = begin; do { ++begin; } while (begin != end && *begin != �); char const *tmp_in_start = start; uint32_t *tmp_out_start = buffer_begin; ConversionResult res = ConvertUTF8toUTF32(reinterpret_cast<UTF8 const **>(&start), reinterpret_cast<UTF8 const *>(begin), &buffer_begin,buffer_end,strictConversion); if (res!=conversionOK) { bool NoErrorOnBadEncoding = isAscii(); unsigned Msg = diag::err_bad_character_encoding; if (NoErrorOnBadEncoding) Msg = diag::warn_bad_character_encoding; PP.Diag(Loc, Msg); if (NoErrorOnBadEncoding) { start = tmp_in_start; buffer_begin = tmp_out_start; for ( ; start != begin; ++start, ++buffer_begin) *buffer_begin = static_cast<uint8_t>(*start); } else { HadError = true; } } else { for (; tmp_out_start <buffer_begin; ++tmp_out_start) { if (*tmp_out_start > largest_character_for_kind) { HadError = true; PP.Diag(Loc, diag::err_character_too_large); } } } continue; } if (begin[1] == � || begin[1] == �) { unsigned short UcnLen = 0; if (!ProcessUCNEscape(TokBegin, begin, end, *buffer_begin, UcnLen, FullSourceLoc(Loc, PP.getSourceManager()), &PP.getDiagnostics(), PP.getLangOpts(), true)) { HadError = true; } else if (*buffer_begin > largest_character_for_kind) argument [all...] |
/freebsd-10.0-release/contrib/llvm/tools/clang/include/clang/Lex/ |
H A D | LiteralSupport.h | 42 const char *const ThisTokBegin; member in class:clang::NumericLiteralParser 79 return SuffixBegin - ThisTokBegin;
|
/freebsd-10.0-release/contrib/llvm/tools/clang/lib/Parse/ |
H A D | ParseDecl.cpp | 705 const char *ThisTokBegin = &Buffer[0]; local 709 unsigned ActualLength = PP.getSpelling(Tok, ThisTokBegin, &Invalid); 716 while (AfterMajor < ActualLength && isDigit(ThisTokBegin[AfterMajor])) { 717 Major = Major * 10 + ThisTokBegin[AfterMajor] - '0'; 739 if (ThisTokBegin[AfterMajor] != '.' || (AfterMajor + 1 == ActualLength)) { 748 while (AfterMinor < ActualLength && isDigit(ThisTokBegin[AfterMinor])) { 749 Minor = Minor * 10 + ThisTokBegin[AfterMinor] - '0'; 766 if (ThisTokBegin[AfterMinor] != '.') { 775 while (AfterSubminor < ActualLength && isDigit(ThisTokBegin[AfterSubminor])) { 776 Subminor = Subminor * 10 + ThisTokBegin[AfterSubmino [all...] |
Completed in 98 milliseconds