This patch resolves an issue where bitfields will not be
printed correctly if a field crosses a storage unit.
The issue is caused by lldb internally storing bitfield
field's offsets as unsigned rather than signed values.
Negative offsets can be created when a field crosses a
storage unit.
The issue is resolved by changing lldb's internal representation
for bitfield field offsets to be stored using signed values.
Also, in the code responsible for extracting data for printing,
the mechanism must be changed such that it can handle negative
offsets appropriately.
This patch includes a test case to test that the issue is resolved.
Remove the {} when using single line ifs.