@@ -317,6 +317,12 @@ class BuiltinFunctionCallNode : public ASTNode {
317317
318318class CStyleCastNode : public ASTNode {
319319public:
320+ CStyleCastNode (uint32_t location, CompilerType type, ASTNodeUP operand,
321+ bool is_rvalue)
322+ : ASTNode(location, NodeKind::eCStyleCastNode), m_type(type),
323+ m_operand (std::move(operand)), m_is_rvalue(is_rvalue) {
324+ m_promo_kind = TypePromotionCastKind::eNone;
325+ }
320326 CStyleCastNode (uint32_t location, CompilerType type, ASTNodeUP operand,
321327 CStyleCastKind kind)
322328 : ASTNode(location, NodeKind::eCStyleCastNode), m_type(type),
@@ -332,9 +338,7 @@ class CStyleCastNode : public ASTNode {
332338 }
333339
334340 llvm::Expected<lldb::ValueObjectSP> Accept (Visitor *v) const override ;
335- bool is_rvalue () const override {
336- return m_cast_kind != CStyleCastKind::eReference;
337- }
341+ bool is_rvalue () const override { return m_is_rvalue; }
338342 CompilerType result_type () const override { return m_type; }
339343 ValueObject *valobj () const override { return m_operand->valobj (); }
340344
@@ -352,6 +356,7 @@ class CStyleCastNode : public ASTNode {
352356 ASTNodeUP m_operand;
353357 CStyleCastKind m_cast_kind;
354358 TypePromotionCastKind m_promo_kind;
359+ bool m_is_rvalue;
355360};
356361
357362class CxxStaticCastNode : public ASTNode {
0 commit comments