Files
poky/meta/recipes-devtools/gcc/gcc-4.6/volatile_access_backport.patch
Khem Raj 0faa5f7299 gcc-4.6: Switch to using svn SRC_URI for recipe
We call the recipes 4.6
Remove the backport patches

(From OE-Core rev: 68b545f4ff719f2b6e57d68b002dc9845c7a14ae)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-06-23 11:50:07 +01:00

29 lines
1.1 KiB
Diff

Pulled from http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01477.html
Upstream-Status: Backport
Signed-off-by: Saul Wold <sgw@linux.intel.com>
gcc/
* expr.c (expand_expr_real_1): Only use BLKmode for volatile
accesses which are not naturally aligned.
Index: gcc-4.6.0/gcc/expr.c
===================================================================
--- gcc-4.6.0.orig/gcc/expr.c 2011-06-01 15:28:55.000000000 -0700
+++ gcc-4.6.0/gcc/expr.c 2011-06-01 15:41:17.154848182 -0700
@@ -9178,8 +9178,11 @@
&& modifier != EXPAND_CONST_ADDRESS
&& modifier != EXPAND_INITIALIZER)
/* If the field is volatile, we always want an aligned
- access. */
- || (volatilep && flag_strict_volatile_bitfields > 0)
+ access. Only do this if the access is not already naturally
+ aligned, otherwise "normal" (non-bitfield) volatile fields
+ become non-addressable. */
+ || (volatilep && flag_strict_volatile_bitfields > 0
+ && (bitpos % GET_MODE_ALIGNMENT (mode) != 0))
/* If the field isn't aligned enough to fetch as a memref,
fetch it as a bit field. */
|| (mode1 != BLKmode