https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105089
--- Comment #3 from Indu Bhagat <ibhagat at gcc dot gnu.org> --- Re: the more "specific" one?, I think if the compiler picks the type from the defining declaration of the variable, that will be useful (and correct I think) CTF debug information. So, for the following- case 1 ------ $ cat a.c extern const char a[]; const char a[] = "testme"; The compiler should emit CTF type for variable a as const char[7] If, however, there is a single non-defining decl as follows- case 2 ------ $ cat b.c extern int a; The compiler should emit CTF type for variable as as int.