Interface LvalueConversion

All Superinterfaces:
Conversion

public interface LvalueConversion extends Conversion
An Lvalue conversion, i.e., a conversion from the type of an lvalue to the type of the value obtained by evaluating that lvalue. C11 Sec. 6.3.2.1 says:
Except when it is the operand of the sizeof operator, the _Alignof operator, the unary & operator, the ++ operator, the -- operator, or the left operand of the . operator or an assignment operator, an lvalue that does not have array type is converted to the value stored in the designated object (and is no longer an lvalue); this is called lvalue conversion. If the lvalue has qualified type, the value has the unqualified version of the type of the lvalue; additionally, if the lvalue has atomic type, the value has the non-atomic version of the type of the lvalue; otherwise, the value has the type of the lvalue. If the lvalue has an incomplete type and does not have array type, the behavior is undefined. If the lvalue designates an object of automatic storage duration that could have been declared with the register storage class (never had its address taken), and that object is uninitialized (not declared with an initializer and no assignment to it has been performed prior to use), the behavior is undefined.
  • Method Details

    • getOldType

      ObjectType getOldType()
      Description copied from interface: Conversion
      Returns the type of the entity before applying this conversion.
      Specified by:
      getOldType in interface Conversion
      Returns:
      the pre-conversion type
    • getNewType

      UnqualifiedObjectType getNewType()
      Description copied from interface: Conversion
      Returns the type of the entity after applying this conversion.
      Specified by:
      getNewType in interface Conversion
      Returns:
      the post-conversion type