https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69681

--- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> ---
(Sorry about the typos in the original comment.  To fix them,

s/since both foo and bar/since both foo and bar are/
s/when comparing and pointers/when comparing pointers/
s/the subsequent declarations/then subsequent declarations/)

An interesting case is:

  __attribute__ ((weak)) void foo () { }
  void bar () { }

  int x[(int)(&foo != &bar)];

Where just one of the functions is declared weak.  Could foo be defined in
another CU as

  __attribute__ ((alias ("bar")) void foo () { } ?

Apparently not, since the symbol being aliased must be defined in the same CU
as the alias.  So I think "&foo != &bar" could be folded if only one of the
functions is declared weak.

Reply via email to