[PATCH] Setting a symbol's type to function has no effect if its type is gnu_indirect_function.

Rafael Ávila de Espíndola rafael.espindola at gmail.com
Tue Apr 9 11:58:42 PDT 2013


  Since this is getting to corner cases of gas' behavior, it is probably better to be a bit more systematic. I did some testing and it looks like what gas does is:

  * The orders in which the .type directives appear is irrelevant
  * The winning type is decided base of the following order:

   TLS > IFUNC > FUNC > OBJECT > NOTYPE

  so, for example, both

          .type ifunc, at tls_object
          .type ifunc, at gnu_indirect_function
  and
          .type ifunc, at gnu_indirect_function
          .type ifunc, at tls_object

  produce a TLS symbol.

http://llvm-reviews.chandlerc.com/D607



More information about the llvm-commits mailing list