https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104685
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I suppose your setup will warn for t.c --- int i; t2.c --- int i; as well. -Wl,--warn-common isn't something I'd recommend, esp. the 'multiple common of <var>' kind is prone to false positives. It does catch errors like when one of the 'i' above is 'float' instead of 'int'. __gcov_var is a common symbol intentionally, there's not much you can do here.