Lvalue-to-rvalue conversions

If an lvalue is used in a situation in which the compiler expects an rvalue, the compiler converts the lvalue to an rvalue. However, an rvalue cannot be converted implicitly to an lvalue. The following table lists exceptions to this rule.
Situation before conversion Resulting behavior
The lvalue is a function type. A pointer to function
The lvalue is an array. A pointer to the first element of the array
The type of the lvalue is an incomplete type. compile-time error
The lvalue refers to an uninitialized object. undefined behavior
The lvalue refers to an object not of the type of the rvalue, nor of a type derived from the type of the rvalue. undefined behavior


Voice your opinion on getting help information Ask IBM compiler experts a technical question in the IBM XL compilers forum Reach out to us