Remove endianness intermediate variable
Add support for volatile types, and for array ranges with no upper bound