[current tinderbox] failure on ...all...

Ruslan Ermilov ru at freebsd.org
Fri Jun 10 10:59:00 GMT 2005


On Fri, Jun 10, 2005 at 11:49:45AM +0200, Poul-Henning Kamp wrote:
> In message <20050610094615.GC79474 at ip.net.ua>, Ruslan Ermilov writes:
> 
> 
> >> struct t1 { int a; } x;
> >> struct t2 { int a; } y = { 42 };
> >> x = y;
> >> 
> >> The types `struct t1' and `struct t2' are not compatible and thus not
> >> assignable.  See 6.2.7 and 6.5.16.1.
> >> 
> >If you're to byte-copy say t1 to t2, is it guaranteed to work?  That is,
> >do both types are guaranteed to have the same size and alignment of their
> >structure members?  I'm pretty sure this is guaranteed, as lot of code
> >assumes this, for example, the sockaddr* structures.
> 
> I do not belive that is guaranteed.  (If it were the structs might as
> well have been made assignable).  You need to make sure that the two
> definitions are covered by the exact same compilation conditions,
> and you can't tell if a compiler has an option along the lines of
> 
> 	-fstruct_is_magic=t2
> 
> Which does weird things you don't know about.
> 
> The fact that it mostly works (and that we rely on this) is a
> testament to the fact that compiler writers emply their destructive
> creativity elsewhere.
> 
Well, the above example isn't quite different from when compiling two
modules that use the same structure type t1 but one of them is compiled
with -fstruct_is_magic=t1.  :-)


Cheers,
-- 
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20050610/e765597e/attachment.bin


More information about the freebsd-current mailing list