Lines Matching defs:std

46     std::tie(LHSResult, RemainingExpr) =
56 std::tie(RHSResult, RemainingExpr) =
101 EvalResult(std::string ErrorMsg)
102 : Value(0), ErrorMsg(std::move(ErrorMsg)) {}
105 const std::string &getErrorMsg() const { return ErrorMsg; }
109 std::string ErrorMsg;
118 std::tie(Token, Remaining) = parseSymbol(Expr);
120 std::tie(Token, Remaining) = parseNumberString(Expr);
132 std::string ErrorMsg("Encountered unexpected token '");
143 return EvalResult(std::move(ErrorMsg));
153 std::pair<BinOpToken, StringRef> parseBinOpToken(StringRef Expr) const {
155 return std::make_pair(BinOpToken::Invalid, "");
159 return std::make_pair(BinOpToken::ShiftLeft, Expr.substr(2).ltrim());
161 return std::make_pair(BinOpToken::ShiftRight, Expr.substr(2).ltrim());
167 return std::make_pair(BinOpToken::Invalid, Expr);
182 return std::make_pair(Op, Expr.substr(1).ltrim());
207 std::pair<StringRef, StringRef> parseSymbol(StringRef Expr) const {
212 return std::make_pair(Expr.substr(0, FirstNonSymbol),
222 std::pair<EvalResult, StringRef> evalDecodeOperand(StringRef Expr) const {
224 return std::make_pair(unexpectedToken(Expr, Expr, "expected '('"), "");
227 std::tie(Symbol, RemainingExpr) = parseSymbol(RemainingExpr);
230 return std::make_pair(
235 return std::make_pair(
240 std::tie(OpIdxExpr, RemainingExpr) = evalNumberExpr(RemainingExpr);
242 return std::make_pair(OpIdxExpr, "");
245 return std::make_pair(
252 return std::make_pair(
258 std::string ErrMsg;
266 return std::make_pair(EvalResult(ErrMsgStream.str()), "");
271 std::string ErrMsg;
277 return std::make_pair(EvalResult(ErrMsgStream.str()), "");
280 return std::make_pair(EvalResult(Op.getImm()), RemainingExpr);
289 std::pair<EvalResult, StringRef> evalNextPC(StringRef Expr,
292 return std::make_pair(unexpectedToken(Expr, Expr, "expected '('"), "");
295 std::tie(Symbol, RemainingExpr) = parseSymbol(RemainingExpr);
298 return std::make_pair(
303 return std::make_pair(
310 return std::make_pair(
319 return std::make_pair(EvalResult(NextPC), RemainingExpr);
327 std::pair<EvalResult, StringRef>
330 return std::make_pair(unexpectedToken(Expr, Expr, "expected '('"), "");
341 return std::make_pair(
346 std::tie(Symbol, RemainingExpr) = parseSymbol(RemainingExpr);
349 return std::make_pair(
354 std::string ErrorMsg = "";
355 std::tie(StubAddr, ErrorMsg) = Checker.getStubOrGOTAddrFor(
359 return std::make_pair(EvalResult(ErrorMsg), "");
361 return std::make_pair(EvalResult(StubAddr), RemainingExpr);
364 std::pair<EvalResult, StringRef> evalSectionAddr(StringRef Expr,
367 return std::make_pair(unexpectedToken(Expr, Expr, "expected '('"), "");
378 return std::make_pair(
383 std::tie(SectionName, RemainingExpr) = parseSymbol(RemainingExpr);
386 return std::make_pair(
391 std::string ErrorMsg = "";
392 std::tie(StubAddr, ErrorMsg) = Checker.getSectionAddr(
396 return std::make_pair(EvalResult(ErrorMsg), "");
398 return std::make_pair(EvalResult(StubAddr), RemainingExpr);
404 std::pair<EvalResult, StringRef> evalIdentifierExpr(StringRef Expr,
408 std::tie(Symbol, RemainingExpr) = parseSymbol(Expr);
423 std::string ErrMsg("No known address for symbol '");
430 return std::make_pair(EvalResult(ErrMsg), "");
440 return std::make_pair(EvalResult(Value), RemainingExpr);
445 std::pair<StringRef, StringRef> parseNumberString(StringRef Expr) const {
456 return std::make_pair(Expr.substr(0, FirstNonDigit),
463 std::pair<EvalResult, StringRef> evalNumberExpr(StringRef Expr) const {
466 std::tie(ValueStr, RemainingExpr) = parseNumberString(Expr);
469 return std::make_pair(
473 return std::make_pair(EvalResult(Value), RemainingExpr);
479 std::pair<EvalResult, StringRef> evalParensExpr(StringRef Expr,
484 std::tie(SubExprResult, RemainingExpr) =
487 return std::make_pair(SubExprResult, "");
489 return std::make_pair(
492 return std::make_pair(SubExprResult, RemainingExpr);
499 std::pair<EvalResult, StringRef> evalLoadExpr(StringRef Expr) const {
505 return std::make_pair(EvalResult("Expected '{' following '*'."), "");
508 std::tie(ReadSizeExpr, RemainingExpr) = evalNumberExpr(RemainingExpr);
510 return std::make_pair(ReadSizeExpr, RemainingExpr);
513 return std::make_pair(EvalResult("Invalid size for dereference."), "");
515 return std::make_pair(EvalResult("Missing '}' for dereference."), "");
521 std::tie(LoadAddrExprResult, RemainingExpr) =
525 return std::make_pair(LoadAddrExprResult, "");
532 return std::make_pair(0, RemainingExpr);
534 return std::make_pair(
546 std::pair<EvalResult, StringRef> evalSimpleExpr(StringRef Expr,
552 return std::make_pair(EvalResult("Unexpected end of expression"), "");
555 std::tie(SubExprResult, RemainingExpr) = evalParensExpr(Expr, PCtx);
557 std::tie(SubExprResult, RemainingExpr) = evalLoadExpr(Expr);
559 std::tie(SubExprResult, RemainingExpr) = evalIdentifierExpr(Expr, PCtx);
561 std::tie(SubExprResult, RemainingExpr) = evalNumberExpr(Expr);
563 return std::make_pair(
568 return std::make_pair(SubExprResult, RemainingExpr);
572 std::tie(SubExprResult, RemainingExpr) =
573 evalSliceExpr(std::make_pair(SubExprResult, RemainingExpr));
575 return std::make_pair(SubExprResult, RemainingExpr);
585 std::pair<EvalResult, StringRef>
586 evalSliceExpr(const std::pair<EvalResult, StringRef> &Ctx) const {
589 std::tie(SubExprResult, RemainingExpr) = Ctx;
595 std::tie(HighBitExpr, RemainingExpr) = evalNumberExpr(RemainingExpr);
598 return std::make_pair(HighBitExpr, RemainingExpr);
601 return std::make_pair(
606 std::tie(LowBitExpr, RemainingExpr) = evalNumberExpr(RemainingExpr);
609 return std::make_pair(LowBitExpr, RemainingExpr);
612 return std::make_pair(
620 return std::make_pair(EvalResult(SlicedValue), RemainingExpr);
629 std::pair<EvalResult, StringRef>
630 evalComplexExpr(const std::pair<EvalResult, StringRef> &LHSAndRemaining,
634 std::tie(LHSResult, RemainingExpr) = LHSAndRemaining;
639 return std::make_pair(LHSResult, RemainingExpr);
643 std::tie(BinOp, RemainingExpr) = parseBinOpToken(RemainingExpr);
647 return std::make_pair(LHSResult, RemainingExpr);
651 std::tie(RHSResult, RemainingExpr) = evalSimpleExpr(RemainingExpr, PCtx);
655 return std::make_pair(RHSResult, RemainingExpr);
661 return evalComplexExpr(std::make_pair(ThisResult, RemainingExpr), PCtx);
683 : IsSymbolValid(std::move(IsSymbolValid)),
684 GetSymbolInfo(std::move(GetSymbolInfo)),
685 GetSectionInfo(std::move(GetSectionInfo)),
686 GetStubInfo(std::move(GetStubInfo)), GetGOTInfo(std::move(GetGOTInfo)),
710 while (LineStart != MemBuf->getBufferEnd() && std::isspace(*LineStart))
727 while (LineStart != MemBuf->getBufferEnd() && std::isspace(*LineStart))
789 std::pair<uint64_t, std::string> RuntimeDyldCheckerImpl::getSectionAddr(
794 std::string ErrMsg;
800 return std::make_pair(0, std::move(ErrMsg));
816 return std::make_pair(Addr, "");
819 std::pair<uint64_t, std::string> RuntimeDyldCheckerImpl::getStubOrGOTAddrFor(
827 std::string ErrMsg;
833 return std::make_pair((uint64_t)0, std::move(ErrMsg));
840 return std::make_pair((uint64_t)0, "Detected zero-filled stub/GOT entry");
845 return std::make_pair(Addr, "");
854 : Impl(::std::make_unique<RuntimeDyldCheckerImpl>(
855 std::move(IsSymbolValid), std::move(GetSymbolInfo),
856 std::move(GetSectionInfo), std::move(GetStubInfo),
857 std::move(GetGOTInfo), Endianness, Disassembler, InstPrinter,
871 std::pair<uint64_t, std::string>