This is an archive of the discontinued LLVM Phabricator instance.

DebugInfo: Use clang's preferred names for integer types
ClosedPublic

Authored by dblaikie on Sep 24 2021, 4:20 PM.

Details

Summary

This reverts c7f16ab3e3f27d944db72908c9c1b1b7366f5515 / r109694 - which
suggested this was done to improve consistency with the gdb test suite.
Possible that at the time GCC did not canonicalize integer types, and so
matching types was important for cross-compiler validity, or that it was
only a case of over-constrained test cases that printed out/tested the
exact names of integer types.

In any case neither issue seems to exist today based on my limited
testing - both gdb and lldb canonicalize integer types (in a way that
happens to match Clang's preferred naming, incidentally) and so never
print the original text name produced in the DWARF by GCC or Clang.

This canonicalization appears to be in integer_types_same_name_p for
GDB and in TypeSystemClang::GetBasicTypeEnumeration for lldb.

(I tested this with one translation unit defining 3 variables - long,
long (*)(), and int (*)(), and another translation unit that had
main, and a function that took long (*)() as a parameter - then
compiled them with mismatched compilers (either GCC+Clang, or
Clang+(Clang with this patch applied)) and no matter the combination,
despite the debug info for one CU naming the type "long int" and the
other naming it "long", both debuggers printed out the name as "long"
and were able to correctly perform overload resolution and pass the
long int (*)() variable to the long (*)() function parameter)

Diff Detail

Event Timeline

dblaikie requested review of this revision.Sep 24 2021, 4:20 PM
dblaikie created this revision.
Herald added a project: Restricted Project. · View Herald TranscriptSep 24 2021, 4:20 PM
Herald added a subscriber: cfe-commits. · View Herald Transcript
probinson accepted this revision.Oct 5 2021, 7:08 AM

Seems like a good simplification. LGTM.

This revision is now accepted and ready to land.Oct 5 2021, 7:08 AM
This revision was landed with ongoing or failed builds.Oct 6 2021, 4:02 PM
This revision was automatically updated to reflect the committed changes.
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptOct 6 2021, 4:02 PM