|
LLDB mainline
|
#include <DILEval.h>
Public Member Functions | |
| Interpreter (ExecutionContext &exe_ctx, llvm::StringRef expr, lldb::DynamicValueType use_dynamic, uint32_t options) | |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateTree (const ASTNodeUP &tree) |
| Evaluate an ASTNode tree. | |
Private Member Functions | |
| llvm::Expected< lldb::ValueObjectSP > | Evaluate (const ASTNode &node) |
| Evaluate an ASTNode. | |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateAndDereference (const ASTNode &node) |
| Evaluate an ASTNode. | |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const IdentifierNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const MemberOfNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const UnaryOpNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const BinaryOpNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const ArraySubscriptNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const BitFieldExtractionNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const IntegerLiteralNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const FloatLiteralNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const BooleanLiteralNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const CastNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const ConditionalNode &node) override |
| llvm::Expected< lldb::ValueObjectSP > | Visit (const SizeOfNode &node) override |
| llvm::Expected< lldb::LanguageType > | GetSourceLanguageFromCU () |
| Retrieve the LanguageType from the compile unit of the current frame. | |
| llvm::Expected< lldb::TypeSystemSP > | GetTypeSystemFromCU () |
| Retrieve the TypeSystem from the compile unit of the current frame. | |
| llvm::Expected< lldb::ValueObjectSP > | UnaryConversion (lldb::ValueObjectSP valobj, uint32_t location) |
| Perform usual unary conversions on a value. | |
| llvm::Expected< CompilerType > | PromoteSignedInteger (CompilerType &lhs_type, CompilerType &rhs_type) |
| If lhs_type is unsigned and rhs_type is signed, check whether it can represent all of the values of lhs_type. | |
| llvm::Expected< CompilerType > | ArithmeticConversion (lldb::ValueObjectSP &lhs, lldb::ValueObjectSP &rhs, uint32_t location) |
| Perform an arithmetic conversion on two values from an arithmetic operation. | |
| llvm::Expected< lldb::ValueObjectSP > | PointerOffset (lldb::ValueObjectSP ptr, lldb::ValueObjectSP offset, BinaryOpKind operation, uint32_t location) |
| Add or subtract the offset to the pointer according to the pointee type byte size. | |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateScalarOp (BinaryOpKind kind, lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, CompilerType result_type, uint32_t location) |
| llvm::Error | ValidateComparison (BinaryOpKind kind, lldb::ValueObjectSP &lhs, lldb::ValueObjectSP &rhs, bool lhs_is_literal, bool rhs_is_literal, uint32_t location) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateComparison (BinaryOpKind kind, lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, bool lhs_is_literal, bool rhs_is_literal, uint32_t location) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateBinaryShift (BinaryOpKind kind, lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, uint32_t location) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateBinaryAddition (lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, uint32_t location) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateBinarySubtraction (lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, uint32_t location) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateBinaryMultiplication (lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, uint32_t location) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateBinaryDivision (lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, uint32_t location) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateBinaryRemainder (lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, uint32_t location) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateBinaryBitwise (BinaryOpKind kind, lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, uint32_t location) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateLogical (const BinaryOpNode &node) |
| llvm::Expected< CompilerType > | PickIntegerType (lldb::TypeSystemSP type_system, ExecutionContext &ext_ctx, const IntegerLiteralNode &literal) |
| llvm::Expected< lldb::ValueObjectSP > | EvaluateAssignment (lldb::ValueObjectSP lhs, lldb::ValueObjectSP rhs, uint32_t location) |
| llvm::Expected< CastKind > | VerifyArithmeticCast (CompilerType source_type, CompilerType target_type, int location) |
| A helper function for VerifyCastType (below). | |
| llvm::Expected< CastKind > | VerifyCastType (lldb::ValueObjectSP operand, CompilerType source_type, CompilerType target_type, int location) |
| As a preparation for type casting, compare the requested 'target' type of the cast with the type of the operand to be cast. | |
| Private Member Functions inherited from lldb_private::dil::Visitor | |
| virtual | ~Visitor ()=default |
Private Attributes | |
| ExecutionContext | m_exe_ctx |
| llvm::StringRef | m_expr |
| lldb::ValueObjectSP | m_scope |
| lldb::DynamicValueType | m_use_dynamic |
| bool | m_use_synthetic |
| bool | m_check_ptr_vs_member |
| bool | m_allow_var_updates |
| bool | m_allow_globals = true |
| lldb_private::dil::Interpreter::Interpreter | ( | ExecutionContext & | exe_ctx, |
| llvm::StringRef | expr, | ||
| lldb::DynamicValueType | use_dynamic, | ||
| uint32_t | options ) |
Definition at line 502 of file DILEval.cpp.
References lldb_private::StackFrame::eExpressionPathOptionCheckPtrVsMember, lldb_private::StackFrame::eExpressionPathOptionsAllowVarUpdates, lldb_private::StackFrame::eExpressionPathOptionsDisallowGlobals, lldb_private::StackFrame::eExpressionPathOptionsNoSyntheticChildren, m_allow_globals, m_allow_var_updates, m_check_ptr_vs_member, m_exe_ctx, m_expr, m_use_dynamic, and m_use_synthetic.
|
private |
Perform an arithmetic conversion on two values from an arithmetic operation.
Definition at line 281 of file DILEval.cpp.
References lldb_private::CompilerType::CompareTypes(), lldb_private::dil::ConversionRank(), lldb_private::CompilerType::IsInteger(), lldb_private::CompilerType::IsScalarType(), lldb_private::CompilerType::IsSigned(), m_expr, PromoteSignedInteger(), and UnaryConversion().
Referenced by EvaluateBinaryAddition(), EvaluateBinaryBitwise(), EvaluateBinaryDivision(), EvaluateBinaryMultiplication(), EvaluateBinaryRemainder(), EvaluateBinarySubtraction(), and ValidateComparison().
|
private |
Evaluate an ASTNode.
Definition at line 537 of file DILEval.cpp.
References lldb_private::dil::ASTNode::Accept(), lldb_private::dil::ASTNode::GetLocation(), and m_expr.
Referenced by EvaluateAndDereference(), EvaluateTree(), Visit(), Visit(), Visit(), and Visit().
|
private |
Evaluate an ASTNode.
If the result is a reference, it is also dereferenced using ValueObject::Dereference.
Definition at line 550 of file DILEval.cpp.
References error(), and Evaluate().
Referenced by EvaluateLogical(), Visit(), Visit(), Visit(), Visit(), and Visit().
|
private |
Definition at line 1094 of file DILEval.cpp.
References m_allow_var_updates, and lldb_private::dil::VerifyAssignmentTypes().
Referenced by Visit().
|
private |
Definition at line 862 of file DILEval.cpp.
References lldb_private::dil::Add, ArithmeticConversion(), EvaluateScalarOp(), lldb_private::CompilerType::IsScalarType(), m_expr, and PointerOffset().
Referenced by Visit().
|
private |
Definition at line 1287 of file DILEval.cpp.
References ArithmeticConversion(), EvaluateScalarOp(), lldb_private::CompilerType::IsInteger(), and m_expr.
Referenced by Visit().
|
private |
Definition at line 999 of file DILEval.cpp.
References ArithmeticConversion(), lldb_private::dil::Div, EvaluateScalarOp(), lldb_private::CompilerType::IsInteger(), lldb_private::CompilerType::IsScalarType(), and m_expr.
Referenced by Visit().
|
private |
Definition at line 977 of file DILEval.cpp.
References ArithmeticConversion(), EvaluateScalarOp(), lldb_private::CompilerType::IsScalarType(), m_expr, and lldb_private::dil::Mul.
Referenced by Visit().
|
private |
Definition at line 1027 of file DILEval.cpp.
References ArithmeticConversion(), EvaluateScalarOp(), lldb_private::CompilerType::IsInteger(), m_expr, and lldb_private::dil::Rem.
Referenced by Visit().
|
private |
Definition at line 1309 of file DILEval.cpp.
References EvaluateScalarOp(), lldb_private::CompilerType::GetBitSize(), lldb_private::CompilerType::GetTypeName(), lldb_private::CompilerType::IsInteger(), m_exe_ctx, m_expr, and UnaryConversion().
Referenced by Visit().
|
private |
Definition at line 900 of file DILEval.cpp.
References ArithmeticConversion(), lldb_private::CompilerType::CompareTypes(), lldb_private::ValueObject::CreateValueObjectFromScalar(), EvaluateScalarOp(), lldb_private::CompilerType::GetByteSize(), lldb_private::CompilerType::GetCanonicalType(), lldb_private::CompilerType::GetPointeeType(), GetTypeSystemFromCU(), lldb_private::CompilerType::IsScalarType(), m_exe_ctx, m_expr, PointerOffset(), and lldb_private::dil::Sub.
Referenced by Visit().
|
private |
Definition at line 1263 of file DILEval.cpp.
References lldb::eBasicTypeBool, error(), EvaluateScalarOp(), lldb_private::dil::GetBasicType(), GetTypeSystemFromCU(), and ValidateComparison().
Referenced by Visit().
|
private |
Definition at line 1350 of file DILEval.cpp.
References lldb_private::ValueObject::CreateValueObjectFromBool(), EvaluateAndDereference(), lldb_private::dil::BinaryOpNode::GetKind(), lldb_private::dil::BinaryOpNode::GetLHS(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::BinaryOpNode::GetRHS(), GetTypeSystemFromCU(), lldb_private::dil::LAnd, m_exe_ctx, and m_expr.
Referenced by Visit().
|
private |
Definition at line 800 of file DILEval.cpp.
References lldb_private::dil::Add, lldb_private::dil::And, lldb_private::ValueObject::CreateValueObjectFromScalar(), lldb_private::dil::Div, lldb_private::dil::EQ, lldb_private::dil::GE, lldb_private::dil::GT, l, lldb_private::dil::LE, lldb_private::dil::LT, m_exe_ctx, m_expr, lldb_private::dil::Mul, lldb_private::dil::NE, lldb_private::dil::Or, lldb_private::dil::Rem, lldb_private::dil::Shl, lldb_private::dil::Shr, lldb_private::dil::Sub, and lldb_private::dil::Xor.
Referenced by EvaluateBinaryAddition(), EvaluateBinaryBitwise(), EvaluateBinaryDivision(), EvaluateBinaryMultiplication(), EvaluateBinaryRemainder(), EvaluateBinaryShift(), EvaluateBinarySubtraction(), and EvaluateComparison().
| llvm::Expected< lldb::ValueObjectSP > lldb_private::dil::Interpreter::EvaluateTree | ( | const ASTNodeUP & | tree | ) |
Evaluate an ASTNode tree.
Definition at line 522 of file DILEval.cpp.
References error(), Evaluate(), lldb_private::Expressions, lldb_private::GetLog(), and LLDB_LOG.
Referenced by lldb_private::BreakpointLocation::ConditionSaysStop(), and lldb_private::StackFrame::DILGetValueForVariableExpressionPath().
|
private |
Retrieve the LanguageType from the compile unit of the current frame.
Definition at line 68 of file DILEval.cpp.
References lldb_private::dil::GetSymbolContexFromFrame(), and m_exe_ctx.
Referenced by Visit().
|
private |
Retrieve the TypeSystem from the compile unit of the current frame.
Definition at line 77 of file DILEval.cpp.
References lldb_private::SymbolContext::comp_unit, lldb::eLanguageTypeUnknown, lldb_private::CompileUnit::GetLanguage(), m_exe_ctx, and lldb_private::SymbolContext::module_sp.
Referenced by EvaluateBinarySubtraction(), EvaluateComparison(), EvaluateLogical(), PromoteSignedInteger(), UnaryConversion(), Visit(), Visit(), Visit(), Visit(), Visit(), and Visit().
|
private |
Definition at line 1894 of file DILEval.cpp.
References lldb::eBasicTypeInt, lldb::eBasicTypeInvalid, lldb::eBasicTypeLong, lldb::eBasicTypeLongLong, lldb::eBasicTypeUnsignedInt, lldb::eBasicTypeUnsignedLong, lldb::eBasicTypeUnsignedLongLong, lldb_private::ExecutionContext::GetBestExecutionContextScope(), lldb_private::CompilerType::GetBitSize(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::IntegerLiteralNode::GetRadix(), lldb_private::dil::IntegerLiteralNode::GetTypeSuffix(), lldb_private::dil::IntegerLiteralNode::GetValue(), lldb_private::dil::IntegerLiteralNode::IsUnsigned(), lldb_private::dil::Long, m_expr, and lldb_private::dil::None.
Referenced by Visit().
|
private |
Add or subtract the offset to the pointer according to the pointee type byte size.
Definition at line 764 of file DILEval.cpp.
References lldb_private::dil::Add, lldb_private::ValueObject::CreateValueObjectFromScalar(), m_exe_ctx, m_expr, and lldb_private::dil::Sub.
Referenced by EvaluateBinaryAddition(), and EvaluateBinarySubtraction().
|
private |
If lhs_type is unsigned and rhs_type is signed, check whether it can represent all of the values of lhs_type.
If not, then promote rhs_type to the unsigned version of its type. This expects that Rank(lhs_type) < Rank(rhs_type).
Definition at line 253 of file DILEval.cpp.
References lldb_private::dil::BasicTypeToUnsigned(), lldb_private::dil::GetBasicType(), lldb_private::CompilerType::GetBasicTypeEnumeration(), lldb_private::CompilerType::GetBitSize(), lldb_private::CompilerType::GetCanonicalType(), GetTypeSystemFromCU(), lldb_private::CompilerType::IsInteger(), lldb_private::CompilerType::IsSigned(), and m_exe_ctx.
Referenced by ArithmeticConversion().
|
private |
Perform usual unary conversions on a value.
At the moment this includes array-to-pointer and integral promotion for eligible types.
Definition at line 123 of file DILEval.cpp.
References lldb_private::dil::ArrayToPointerConversion(), lldb_private::ValueObject::CreateValueObjectFromScalar(), lldb::eBasicTypeInt, lldb::eBasicTypeUnsignedInt, lldb_private::dil::GetBasicType(), lldb_private::CompilerType::GetBitSize(), GetTypeSystemFromCU(), lldb_private::CompilerType::IsArrayType(), lldb_private::CompilerType::IsInteger(), lldb_private::CompilerType::IsSigned(), m_exe_ctx, and m_expr.
Referenced by ArithmeticConversion(), EvaluateBinaryShift(), and Visit().
|
private |
Definition at line 1119 of file DILEval.cpp.
References ArithmeticConversion(), lldb_private::dil::ArrayToPointerConversion(), lldb_private::CompilerType::CompareTypes(), lldb_private::dil::GE, lldb_private::CompilerType::GetCanonicalType(), lldb_private::CompilerType::GetFullyUnqualifiedType(), lldb_private::dil::GT, lldb_private::CompilerType::IsIntegerOrEnumerationType(), lldb_private::dil::IsLiteralZero(), lldb_private::CompilerType::IsNullPtrType(), lldb_private::CompilerType::IsPointerToVoid(), lldb_private::CompilerType::IsPointerType(), lldb_private::CompilerType::IsScalarOrUnscopedEnumerationType(), lldb_private::CompilerType::IsScopedEnumerationType(), lldb_private::dil::LE, lldb_private::dil::LT, m_exe_ctx, and m_expr.
Referenced by EvaluateComparison().
|
private |
A helper function for VerifyCastType (below).
This performs arithmetic-specific checks. It should only be called if the target_type is a scalar type.
Definition at line 1992 of file DILEval.cpp.
References lldb_private::dil::eArithmetic, lldb_private::Expressions, lldb_private::CompilerType::GetByteSize(), lldb_private::GetLog(), lldb_private::CompilerType::GetTypeInfo(), lldb_private::CompilerType::IsBoolean(), lldb_private::CompilerType::IsEnumerationType(), lldb_private::CompilerType::IsNullPtrType(), lldb_private::CompilerType::IsPointerType(), lldb_private::CompilerType::IsScalarType(), LLDB_LOG_ERROR, m_exe_ctx, m_expr, and lldb_private::CompilerType::TypeDescription().
Referenced by VerifyCastType().
|
private |
As a preparation for type casting, compare the requested 'target' type of the cast with the type of the operand to be cast.
If the cast is allowed, return the appropriate CastKind for the cast; otherwise return an error.
Definition at line 2061 of file DILEval.cpp.
References lldb_private::dil::eEnumeration, lldb_private::dil::ePointer, lldb_private::CompilerType::IsArrayType(), lldb_private::CompilerType::IsEnumerationType(), lldb_private::CompilerType::IsInteger(), lldb_private::CompilerType::IsNullPtrType(), lldb_private::CompilerType::IsPointerType(), lldb_private::CompilerType::IsScalarType(), m_expr, lldb_private::CompilerType::TypeDescription(), and VerifyArithmeticCast().
Referenced by Visit().
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 1642 of file DILEval.cpp.
References lldb::eLanguageTypeObjC, lldb::eNoDynamicValues, Evaluate(), EvaluateAndDereference(), lldb::eValueTypeRegister, lldb_private::dil::ArraySubscriptNode::GetBase(), lldb_private::StreamString::GetData(), lldb_private::dil::ArraySubscriptNode::GetIndex(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::CompilerType::IsArrayType(), lldb_private::CompilerType::IsPointerToVoid(), lldb_private::CompilerType::IsPointerType(), lldb_private::CompilerType::IsScalarType(), lldb_private::CompilerType::IsVectorType(), m_expr, m_use_dynamic, and m_use_synthetic.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 1404 of file DILEval.cpp.
References lldb_private::dil::Add, lldb_private::dil::AddAssign, lldb_private::dil::And, lldb_private::dil::AndAssign, lldb_private::dil::Assign, lldb_private::dil::Div, lldb_private::dil::DivAssign, lldb_private::dil::EQ, EvaluateAndDereference(), EvaluateAssignment(), EvaluateBinaryAddition(), EvaluateBinaryBitwise(), EvaluateBinaryDivision(), EvaluateBinaryMultiplication(), EvaluateBinaryRemainder(), EvaluateBinaryShift(), EvaluateBinarySubtraction(), EvaluateComparison(), EvaluateLogical(), lldb_private::dil::GE, lldb_private::dil::BinaryOpNode::GetKind(), lldb_private::dil::BinaryOpNode::GetLHS(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::BinaryOpNode::GetRHS(), lldb_private::dil::GT, lldb_private::dil::ASTNode::IsConstLiteral(), lldb_private::dil::LAnd, lldb_private::dil::LE, lldb_private::dil::LOr, lldb_private::dil::LT, m_expr, lldb_private::dil::Mul, lldb_private::dil::MulAssign, lldb_private::dil::NE, lldb_private::dil::Or, lldb_private::dil::OrAssign, lldb_private::dil::Rem, lldb_private::dil::RemAssign, lldb_private::dil::Shl, lldb_private::dil::ShlAssign, lldb_private::dil::Shr, lldb_private::dil::ShrAssign, lldb_private::dil::Sub, lldb_private::dil::SubAssign, lldb_private::dil::Xor, and lldb_private::dil::XorAssign.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 1810 of file DILEval.cpp.
References EvaluateAndDereference(), lldb_private::dil::BitFieldExtractionNode::GetBase(), lldb_private::dil::BitFieldExtractionNode::GetFirstIndex(), lldb_private::dil::BitFieldExtractionNode::GetLastIndex(), lldb_private::dil::ASTNode::GetLocation(), m_exe_ctx, and m_expr.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 1982 of file DILEval.cpp.
References lldb_private::ValueObject::CreateValueObjectFromBool(), GetTypeSystemFromCU(), lldb_private::dil::BooleanLiteralNode::GetValue(), and m_exe_ctx.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 2106 of file DILEval.cpp.
References lldb_private::dil::ArrayToPointerConversion(), lldb_private::ValueObject::CreateValueObjectFromAddress(), lldb_private::dil::eArithmetic, lldb_private::dil::eEnumeration, lldb_private::dil::eNone, lldb_private::dil::ePointer, error(), Evaluate(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::CompilerType::GetNonReferenceType(), lldb_private::dil::CastNode::GetOperand(), lldb_private::dil::CastNode::GetType(), lldb_private::CompilerType::GetTypeInfo(), lldb_private::CompilerType::IsArrayType(), lldb_private::CompilerType::IsEnumerationType(), lldb_private::CompilerType::IsInteger(), lldb_private::CompilerType::IsNullPtrType(), lldb_private::CompilerType::IsPointerType(), lldb_private::CompilerType::IsReferenceType(), lldb_private::CompilerType::IsScalarType(), lldb_private::CompilerType::IsSigned(), m_exe_ctx, m_expr, lldb_private::CompilerType::TypeDescription(), and VerifyCastType().
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 2183 of file DILEval.cpp.
References EvaluateAndDereference(), lldb_private::dil::ConditionalNode::GetCondition(), lldb_private::dil::ConditionalNode::GetFalseOperand(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::ConditionalNode::GetTrueOperand(), lldb_private::CompilerType::IsContextuallyConvertibleToBool(), m_expr, and lldb_private::CompilerType::TypeDescription().
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 1961 of file DILEval.cpp.
References lldb_private::ValueObject::CreateValueObjectFromScalar(), lldb::eBasicTypeDouble, lldb::eBasicTypeFloat, lldb_private::dil::GetBasicType(), lldb_private::dil::ASTNode::GetLocation(), GetTypeSystemFromCU(), lldb_private::dil::FloatLiteralNode::GetValue(), m_exe_ctx, and m_expr.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 566 of file DILEval.cpp.
References lldb_private::ValueObject::CreateValueObjectFromScalar(), lldb::eBasicTypeNullPtr, lldb_private::dil::GetBasicType(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::IdentifierNode::GetName(), GetSourceLanguageFromCU(), GetTypeSystemFromCU(), lldb_private::dil::LookupEnumValue(), lldb_private::dil::LookupGlobalIdentifier(), lldb_private::dil::LookupIdentifier(), lldb_private::dil::LookupPersistentIdentifier(), m_allow_globals, m_exe_ctx, m_expr, and m_use_dynamic.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 1934 of file DILEval.cpp.
References lldb_private::ValueObject::CreateValueObjectFromScalar(), GetTypeSystemFromCU(), lldb_private::dil::IntegerLiteralNode::GetValue(), m_exe_ctx, lldb_private::Scalar::MakeSigned(), PickIntegerType(), and lldb_private::Scalar::TruncOrExtendTo().
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 1534 of file DILEval.cpp.
References lldb_private::ValueObjectRegister::Create(), lldb::eNoDynamicValues, Evaluate(), lldb_private::Status::Fail(), lldb_private::dil::MemberOfNode::GetBase(), lldb_private::dil::MemberOfNode::GetFieldName(), lldb_private::dil::MemberOfNode::GetIsArrow(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::CompilerType::GetPointeeType(), lldb_private::dil::GetRegisterPathName(), m_check_ptr_vs_member, m_exe_ctx, m_expr, m_use_dynamic, m_use_synthetic, and lldb_private::Status::Success().
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 2215 of file DILEval.cpp.
References lldb_private::ValueObject::CreateValueObjectFromScalar(), EvaluateAndDereference(), lldb_private::CompilerType::GetByteSize(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::SizeOfNode::GetNodeArg(), lldb_private::CompilerType::GetNonReferenceType(), lldb_private::dil::SizeOfNode::GetTypeArg(), GetTypeSystemFromCU(), lldb_private::CompilerType::IsReferenceType(), lldb_private::CompilerType::IsValid(), m_exe_ctx, and m_expr.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 612 of file DILEval.cpp.
References lldb_private::dil::AddrOf, lldb_private::ValueObject::CreateValueObjectFromBool(), lldb_private::ValueObject::CreateValueObjectFromScalar(), lldb_private::dil::Deref, error(), Evaluate(), lldb_private::dil::UnaryOpNode::GetKind(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::UnaryOpNode::GetOperand(), lldb_private::CompilerType::GetTypeName(), GetTypeSystemFromCU(), lldb_private::CompilerType::IsContextuallyConvertibleToBool(), lldb_private::CompilerType::IsInteger(), lldb_private::CompilerType::IsPointerType(), lldb_private::CompilerType::IsScalarType(), lldb_private::dil::LNot, m_exe_ctx, m_expr, m_use_dynamic, m_use_synthetic, lldb_private::dil::Minus, lldb_private::dil::Not, lldb_private::Scalar::OnesComplement(), lldb_private::dil::Plus, UnaryConversion(), and lldb_private::Scalar::UnaryNegate().
|
private |
Definition at line 189 of file DILEval.h.
Referenced by Interpreter(), and Visit().
|
private |
Definition at line 188 of file DILEval.h.
Referenced by EvaluateAssignment(), and Interpreter().
|
private |
Definition at line 187 of file DILEval.h.
Referenced by Interpreter(), and Visit().
|
private |
Definition at line 182 of file DILEval.h.
Referenced by EvaluateBinaryShift(), EvaluateBinarySubtraction(), EvaluateLogical(), EvaluateScalarOp(), GetSourceLanguageFromCU(), GetTypeSystemFromCU(), Interpreter(), PointerOffset(), PromoteSignedInteger(), UnaryConversion(), ValidateComparison(), VerifyArithmeticCast(), Visit(), Visit(), Visit(), Visit(), Visit(), Visit(), Visit(), Visit(), and Visit().
|
private |
Definition at line 183 of file DILEval.h.
Referenced by ArithmeticConversion(), Evaluate(), EvaluateBinaryAddition(), EvaluateBinaryBitwise(), EvaluateBinaryDivision(), EvaluateBinaryMultiplication(), EvaluateBinaryRemainder(), EvaluateBinaryShift(), EvaluateBinarySubtraction(), EvaluateLogical(), EvaluateScalarOp(), Interpreter(), PickIntegerType(), PointerOffset(), UnaryConversion(), ValidateComparison(), VerifyArithmeticCast(), VerifyCastType(), Visit(), Visit(), Visit(), Visit(), Visit(), Visit(), Visit(), Visit(), Visit(), and Visit().
|
private |
|
private |
|
private |