http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56341
Bernd Edlinger <bernd.edlinger at hotmail dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #29506|0 |1
is obsolete| |
--- Comment #8 from Bernd Edlinger <bernd.edlinger at hotmail dot de>
2013-02-26 18:24:58 UTC ---
Created attachment 29546
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29546
proposed patch, cleaned up
in the last version of this patch the packedp parameter had only an
impact on the generated warning.
if packedp==true the warning is:
"multiple accesses to volatile structure member/bitfield
because of packed attribute"
if packedp==false the warning is:
"mis-aligned access used for structure member/bitfield
when a volatile object spans multiple type-sized locations,
the compiler must choose between using a single mis-aligned access to
preserve the volatility, or using multiple aligned accesses to avoid
runtime faults; this code may fail at runtime if the hardware does
not allow this access"
The second warning says in short:
"I am going to generate mis-aligned code, and I know it will fail at runtime."
However this patch is supposed to avoid mis-aligned code, at least for ARM.
Therefore it is only natural that the second warning is no longer needed.
Now I removed all packedp code in extract_bit_field and store_bit_field,
including the second warning. Fortunately that makes the patch much smaller.
I did boot-strap the patched compiler several times, and everything looks good.
TODO: remove translations of the obsolete warnings. (I dont know how to)