<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Yes, technically according to the c standard, I'm pretty sure that you are supposed to extract only the last type input into the union, but that it's the programmer's responsibility and that attempting to extract something else has implementation-dependent behavior. It would be weird for a compiler to implement it in any other way – the thing that could sometimes be tricky is alignment when the types are not the same size. Pretty sure there's no problem with any mainstream compiler.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 6, 2018 at 4:35 PM, Jonathan Wilkes <span dir="ltr"><<a href="mailto:jon.w.wilkes@gmail.com" target="_blank">jon.w.wilkes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi list,<br>
<br>
It appears that Purr Data uses the following compilers:<br>
<br>
1. gcc under Linux<br>
2. clang under OSX<br>
3. gcc via msys2 on Windows<br>
<br>
It appears to me that gcc has an extension that allows us<br>
to do type punning through unions:<br>
<br>
<a href="http://mail-index.netbsd.org/tech-kern/2003/08/11/0001.html" rel="noreferrer" target="_blank">http://mail-index.netbsd.org/<wbr>tech-kern/2003/08/11/0001.html</a><br>
<br>
It also appears that clang copies this gcc extension.<br>
<br>
So on all the supported platforms, we should be covered<br>
if we use union type punning.<br>
<br>
The only alternative to caring about all these compiler<br>
implementations is apparently to cast to char* and use<br>
memcpy, which is stupid.<br>
<br>
Can I reasonably move on at this point without having to<br>
decode C99 scrolls (and the even more boring reading of<br>
web blogs attempting to interpret said scrolls)?<br>
<br>
-Jonathan<br>
______________________________<wbr>_________________<br>
L2Ork-dev mailing list<br>
<a href="mailto:L2Ork-dev@disis.music.vt.edu">L2Ork-dev@disis.music.vt.edu</a><br>
<a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/<wbr>listinfo/l2ork-dev</a></blockquote></div><br></div>