On Thu, Apr 06, 2017 at 04:51:01PM +0200, Florian Weimer wrote: > On 04/06/2017 04:43 PM, Jonathan Wakely wrote: > > On 06/04/17 16:23 +0200, Richard Biener wrote: > > > On Thu, 6 Apr 2017, Florian Weimer wrote: > > > > > > > On 04/06/2017 04:11 PM, Bernd Edlinger wrote: > > > > > > > > > I think it is not too complicated to done in the C++ FE. > > > > > The FE looks for array of std::byte and unsigned char, > > > > > and sets the attribute when the final type is constructed. > > > > > > > > > > What I am trying to do is just extend the semantic of may_alias > > > > > a bit, and then have the C++ FE use it in the way it has to. > > > > > > > > We also need this for some POSIX and Linux kernel interfaces. A > > > > C++-only > > > > solution would not help with that. > > > > > > Example(s)? > > > > sockaddr_storage comes to mind. > > Right. The kernel also has many APIs which return multiple variable-length > data blocks, such as getdents64, and many more interfaces in combination
The kernel uses -fno-strict-aliasing I think, so it doesn't care. Jakub