[PATCH] D20561: Warn when taking address of packed member

Roger Ferrer Ibanez via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 15 00:26:37 PDT 2016


rogfer01 added a comment.

In https://reviews.llvm.org/D20561#484421, @jyknight wrote:

> This seems to trigger even for the implicitly generated copier of a packed struct. E.g.
>
>   #include <sys/epoll.h>
>  
>   void copyit(epoll_event&out, const epoll_event &in) {
>     out = in;
>   }
>  
>
>
> Is that as intended?


No, it wasn't. It seems to happen as well for the implicit copy constructor as well.

  #include <sys/epoll.h>
  
  void copyit2(epoll_event foo);
  void copyit(epoll_event &out) { copyit2(out); }

  clang++ -c test.cc
  In file included from test.cc:1:
  /usr/include/x86_64-linux-gnu/sys/epoll.h:87:8: error: binding reference to packed member 'data' of class or structure 'epoll_event'
  struct epoll_event
         ^~~~~~~~~~~
  test.cc:4:41: note: implicit copy constructor for 'epoll_event' first required here
  void copyit(epoll_event &out) { copyit2(out); }
                                          ^
  1 error generated.


Repository:
  rL LLVM

https://reviews.llvm.org/D20561





More information about the cfe-commits mailing list