https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90109
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wilson at gcc dot gnu.org --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- GCC 8 seems to get 'long int' correct: typedef int32 int; typedef int8 char; typedef int64 long int; typedef uint32 unsigned int; typedef uint32 long unsigned int; typedef uint32 __int128; typedef uint32 __int128 unsigned; typedef int64 long long int; typedef uint64 long long unsigned int; typedef int16 short int; typedef uint16 short unsigned int; typedef int8 signed char; typedef uint8 unsigned char; typedef float float; typedef double double; typedef float128 long double; long double is also wrong. GCC does if (print_int_cst_bounds_in_octal_p (type, low, high)) ... else /* Output other integer types as subranges of `int'. */ dbxout_range_type (type, low, high); probably that's the issue. It looks like you need to use -gstabs+ to allow representing those types at all (stabs with GNU extensions). With -gstabs+ I see /tmp/t.c: typedef int32 int; typedef int8 char; typedef int64 long int; typedef uint32 unsigned int; typedef uint64 long unsigned int; typedef void __int128; typedef void __int128 unsigned; typedef int64 long long int; typedef uint64 long long unsigned int; typedef int16 short int; typedef uint16 short unsigned int; typedef int8 signed char; typedef uint8 unsigned char; typedef float float; typedef double double; typedef float128 long double; (long double still wrong) So - INVALID? Jim, you are "remotely" listed as MAINTAINER for stabs.