I have seen in one place (write_exp_elt) that we are passing an union by value and not by reference. Please let me know whether we do have any specific reason of doing that. I am submitting the patch as an attachment. Please review the same. Thanks, Abhijit Halder