diff options
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99425.patch')
-rw-r--r-- | toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99425.patch | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99425.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99425.patch deleted file mode 100644 index 17839c03dc..0000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99425.patch +++ /dev/null @@ -1,128 +0,0 @@ -2010-10-26 Jie Zhang <jie@codesourcery.com> - - Issue #1259 - - Backport from mainline: - - gcc/ - 2010-10-26 Jie Zhang <jie@codesourcery.com> - - * stor-layout.c (layout_decl): Use the field's type to - determine the mode and keep DECL_BIT_FIELD for a volatile - bit-field. - * config/arm/arm.c (arm_override_options): Default to - -fstrict-volatile-bitfields. - - gcc/testsuite/ - 2010-10-26 Jie Zhang <jie@codesourcery.com> - - * gcc.target/arm/volatile-bitfields-1.c: New test. - * gcc.target/arm/volatile-bitfields-2.c: New test. - * gcc.target/arm/volatile-bitfields-3.c: New test. - -=== modified file 'gcc/config/arm/arm.c' ---- old/gcc/config/arm/arm.c 2010-11-04 10:45:05 +0000 -+++ new/gcc/config/arm/arm.c 2010-11-04 12:49:37 +0000 -@@ -1933,6 +1933,10 @@ - calculation, which is 2 instructions. */ - set_param_value ("gcse-unrestricted-cost", 2); - -+ /* ARM EABI defaults to strict volatile bitfields. */ -+ if (TARGET_AAPCS_BASED && flag_strict_volatile_bitfields < 0) -+ flag_strict_volatile_bitfields = 1; -+ - /* Register global variables with the garbage collector. */ - arm_add_gc_roots (); - - -=== modified file 'gcc/stor-layout.c' ---- old/gcc/stor-layout.c 2010-04-02 18:54:46 +0000 -+++ new/gcc/stor-layout.c 2010-11-04 12:49:37 +0000 -@@ -593,11 +593,14 @@ - } - - /* See if we can use an ordinary integer mode for a bit-field. -- Conditions are: a fixed size that is correct for another mode -- and occupying a complete byte or bytes on proper boundary. */ -+ Conditions are: a fixed size that is correct for another mode, -+ occupying a complete byte or bytes on proper boundary, -+ and not volatile or not -fstrict-volatile-bitfields. */ - if (TYPE_SIZE (type) != 0 - && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST -- && GET_MODE_CLASS (TYPE_MODE (type)) == MODE_INT) -+ && GET_MODE_CLASS (TYPE_MODE (type)) == MODE_INT -+ && !(TREE_THIS_VOLATILE (decl) -+ && flag_strict_volatile_bitfields > 0)) - { - enum machine_mode xmode - = mode_for_size_tree (DECL_SIZE (decl), MODE_INT, 1); - -=== added file 'gcc/testsuite/gcc.target/arm/volatile-bitfields-1.c' ---- old/gcc/testsuite/gcc.target/arm/volatile-bitfields-1.c 1970-01-01 00:00:00 +0000 -+++ new/gcc/testsuite/gcc.target/arm/volatile-bitfields-1.c 2010-11-04 12:49:37 +0000 -@@ -0,0 +1,18 @@ -+/* { dg-require-effective-target arm_eabi } */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+ -+typedef struct { -+ char a:1; -+ char b:7; -+ int c; -+} BitStruct; -+ -+volatile BitStruct bits; -+ -+int foo () -+{ -+ return bits.b; -+} -+ -+/* { dg-final { scan-assembler "ldrb\[\\t \]+\[^\n\]*,\[\\t \]*\\\[\[^\n\]*\\\]" } } */ - -=== added file 'gcc/testsuite/gcc.target/arm/volatile-bitfields-2.c' ---- old/gcc/testsuite/gcc.target/arm/volatile-bitfields-2.c 1970-01-01 00:00:00 +0000 -+++ new/gcc/testsuite/gcc.target/arm/volatile-bitfields-2.c 2010-11-04 12:49:37 +0000 -@@ -0,0 +1,18 @@ -+/* { dg-require-effective-target arm_eabi } */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+ -+typedef struct { -+ volatile unsigned long a:8; -+ volatile unsigned long b:8; -+ volatile unsigned long c:16; -+} BitStruct; -+ -+BitStruct bits; -+ -+unsigned long foo () -+{ -+ return bits.b; -+} -+ -+/* { dg-final { scan-assembler "ldr\[\\t \]+\[^\n\]*,\[\\t \]*\\\[\[^\n\]*\\\]" } } */ - -=== added file 'gcc/testsuite/gcc.target/arm/volatile-bitfields-3.c' ---- old/gcc/testsuite/gcc.target/arm/volatile-bitfields-3.c 1970-01-01 00:00:00 +0000 -+++ new/gcc/testsuite/gcc.target/arm/volatile-bitfields-3.c 2010-11-04 12:49:37 +0000 -@@ -0,0 +1,18 @@ -+/* { dg-require-effective-target arm_eabi } */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+ -+typedef struct { -+ volatile unsigned long a:8; -+ volatile unsigned long b:8; -+ volatile unsigned long c:16; -+} BitStruct; -+ -+BitStruct bits; -+ -+unsigned long foo () -+{ -+ return bits.c; -+} -+ -+/* { dg-final { scan-assembler "ldr\[\\t \]+\[^\n\]*,\[\\t \]*\\\[\[^\n\]*\\\]" } } */ - |