https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118837
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- I don't read any ambiguity. How DW_FORM_data1 255 is interpreted depends on context - but if the context only says 'int', then this is not enough context to decide if <unknown-sign> char 255 is supposed to be sign or zero-extended to 'int'. A reasonable interpretation would be that the producer would only truncate the data when there is no such ambiguity, either resulting in DW_FORM_data2 255 or in the consumer assuming zero-extension(?) IMO LLVM in this case is the one to blame for any ambiguity and it should not truncate using DW_FORM_dataN when the result has the sign bit not zero.