<br><br><div class="gmail_quote">On Wed, Mar 17, 2010 at 6:17 PM, Carl-Daniel Hailfinger <span dir="ltr"><<a href="mailto:c-d.hailfinger.devel.2006@gmx.net">c-d.hailfinger.devel.2006@gmx.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Segher,<br>
<br>
you're probably able to solve this one easily.<br>
<div><div></div><div class="h5"><br>
On 18.03.2010 00:45, Myles Watson wrote:<br>
>>> -extern unsigned char AmlCode[];<br>
>>> +extern void* AmlCode;<br>
>>><br>
>>><br>
>>>  So AmlCode is used as a void * pointing to the address 0x54445344<br>
<br>
>> What is it, you want to do?<br>
>><br>
>><br>
> Get rid of the type punned warning that gcc gives for that code where<br>
> AmlCode gets cast to acpi_header_t.<br>
><br>
<br>
</div></div>Could __attribute__((may_alias)) help?<br></blockquote><div>I'd rather not use an attribute if we can just use a cast.<br><br>It seems to work to have an intermediate void*:<br><br>     void_ptr = &AmlCode_ssdt;<br>
     current += ((acpi_header_t *)void_ptr)->length;<br><br>It compiles without warning and is functionally correct, but it may be too ugly.  I'm still surprised that it needs to be &AmlCode_ssdt.  I really expected Amlcode_ssdt to be a cast-able pointer.<br>
<br></div></div>Thanks,<br>Myles<br>