Class LValue keeps result of lvalue evaluation. In some analyses it is
also necessary to have access to the original expression. This change
adds new member to LValue to keep the expression and initializes this
member when an lvalue is evaluated using LValueExprEvaluator.
With this change LHS expression becomes available in
HandleUnionActiveMemberChange and it becomes possible to fix PR45879.
I don't think this is an appropriate approach. A source expression is fundamentally not part of an lvalue, and so we shouldn't be tracking one. I think we can fix this bug by handling the active union member change for a class assignment at a higher level, working on a patch...