It doesn't right now, but in a perfect world ld could complain if one object referred to a symbol of type object while another referred to the same symbol of type function.
Of course, in order for ld to do this, gcc would have to actually emit .type directives for extern variables and functions. It doesn't right now, hence this bug. -- Summary: gcc should emit .type directives for extern variables and functions Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: nmiell at comcast dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27080