martong planned changes to this revision.
martong added a comment.

With @xazax.hun we agreed that we should try our best to provide signatures for 
all functions. This includes two major changes:

1. Add signatures to each summary here, possibly with `Irrelevant` types.
2. Add the ability to lookup types. This will result that we can change the 
majority `Irrelevant` types to concrete types.

Note, we still cannot get rid of `Irrelevant` types because of platform 
dependent typedefs and macros. E.g. `ssize_t` or `__CONST_SOCKADDR_ARG`. Check 
out glibc 2.27 implementation for `struct sockaddr *` below. The only solution 
for such cases is to use an `Irrelevant` type.

  #if defined __cplusplus || !__GNUC_PREREQ (2, 7) || !defined __USE_GNU
  # define __SOCKADDR_ARG               struct sockaddr *__restrict
  # define __CONST_SOCKADDR_ARG const struct sockaddr *
  #else
  /* Add more `struct sockaddr_AF' types here as necessary.
     These are all the ones I found on NetBSD and Linux.  */
  # define __SOCKADDR_ALLTYPES \
    __SOCKADDR_ONETYPE (sockaddr) \
    __SOCKADDR_ONETYPE (sockaddr_at) \
    __SOCKADDR_ONETYPE (sockaddr_ax25) \
    __SOCKADDR_ONETYPE (sockaddr_dl) \
    __SOCKADDR_ONETYPE (sockaddr_eon) \
    __SOCKADDR_ONETYPE (sockaddr_in) \
    __SOCKADDR_ONETYPE (sockaddr_in6) \
    __SOCKADDR_ONETYPE (sockaddr_inarp) \
    __SOCKADDR_ONETYPE (sockaddr_ipx) \
    __SOCKADDR_ONETYPE (sockaddr_iso) \
    __SOCKADDR_ONETYPE (sockaddr_ns) \
    __SOCKADDR_ONETYPE (sockaddr_un) \
    __SOCKADDR_ONETYPE (sockaddr_x25)
  
  # define __SOCKADDR_ONETYPE(type) struct type *__restrict __##type##__;
  typedef union { __SOCKADDR_ALLTYPES
              } __SOCKADDR_ARG __attribute__ ((__transparent_union__));
  # undef __SOCKADDR_ONETYPE
  # define __SOCKADDR_ONETYPE(type) const struct type *__restrict __##type##__;
  typedef union { __SOCKADDR_ALLTYPES
              } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
  # undef __SOCKADDR_ONETYPE
  #endif


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79433/new/

https://reviews.llvm.org/D79433



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to