re PR target/43746 (-fmerge-constants and -fmerge-all-constants don't work at AVR...
authorGeorg-Johann Lay <avr@gjlay.de>
Thu, 14 Jul 2011 07:49:14 +0000 (07:49 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Thu, 14 Jul 2011 07:49:14 +0000 (07:49 +0000)
gcc/
PR target/43746
* config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
i.e. use default_elf_select_section.
(TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
(READONLY_DATA_SECTION_ASM_OP): Remove.
(TARGET_ASM_NAMED_SECTION): Move from here...
* config/avr/avr.c: ...to here.
(avr_asm_init_sections): Set unnamed callback of
readonly_data_section.
(avr_asm_named_section): Make static.

testsuite/
PR target/43746
* gcc.dg/array-quals-1.c: Don't xfail on AVR.

From-SVN: r176262

gcc/ChangeLog
gcc/config/avr/avr.c
gcc/config/avr/elf.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/array-quals-1.c

index 2c7b0dfc9977f0c0a117805e471d2aa0e216e4ea..3cbc03c63300f8c48bab5ed84027d00315350c5f 100644 (file)
@@ -1,3 +1,16 @@
+2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/43746
+       * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
+       i.e. use default_elf_select_section.
+       (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
+       (READONLY_DATA_SECTION_ASM_OP): Remove.
+       (TARGET_ASM_NAMED_SECTION): Move from here...
+       * config/avr/avr.c: ...to here.
+       (avr_asm_init_sections): Set unnamed callback of
+       readonly_data_section.
+       (avr_asm_named_section): Make static.
+
 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        PR bootstrap/49739
index 128706d677603a3217558a0e0f33485f310cb1b7..d535f330621724cc7ce436eda61316b95d9fd3e0 100644 (file)
@@ -194,8 +194,8 @@ static const struct attribute_spec avr_attribute_table[] =
 #undef TARGET_SECTION_TYPE_FLAGS
 #define TARGET_SECTION_TYPE_FLAGS avr_section_type_flags
 
-/* `TARGET_ASM_NAMED_SECTION' must be defined in avr.h.  */
-
+#undef TARGET_ASM_NAMED_SECTION
+#define TARGET_ASM_NAMED_SECTION avr_asm_named_section
 #undef TARGET_ASM_INIT_SECTIONS
 #define TARGET_ASM_INIT_SECTIONS avr_asm_init_sections
 #undef TARGET_ENCODE_SECTION_INFO
@@ -5091,8 +5091,11 @@ avr_asm_init_sections (void)
   progmem_section = get_unnamed_section (AVR_HAVE_JMP_CALL ? 0 : SECTION_CODE,
                                         avr_output_progmem_section_asm_op,
                                         NULL);
-  readonly_data_section = data_section;
 
+  /* Override section callbacks to keep track of `avr_need_clear_bss_p'
+     resp. `avr_need_copy_data_p'.  */
+  
+  readonly_data_section->unnamed.callback = avr_output_data_section_asm_op;
   data_section->unnamed.callback = avr_output_data_section_asm_op;
   bss_section->unnamed.callback = avr_output_bss_section_asm_op;
 }
@@ -5101,7 +5104,7 @@ avr_asm_init_sections (void)
 /* Implement `TARGET_ASM_NAMED_SECTION'.  */
 /* Track need of __do_clear_bss, __do_copy_data for named sections.  */
 
-void
+static void
 avr_asm_named_section (const char *name, unsigned int flags, tree decl)
 {
   if (!avr_need_copy_data_p)
index 9bbd32fd7b132ba64bfec235c9985cd01f2149db..f360e882a96ab936f7f86e8e16a1f7e6e224f181 100644 (file)
 #undef PREFERRED_DEBUGGING_TYPE
 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
 
-#undef TARGET_ASM_NAMED_SECTION
-#define TARGET_ASM_NAMED_SECTION avr_asm_named_section
-
-/* Use lame default: no string merging, ...  */
-#undef TARGET_ASM_SELECT_SECTION
-#define TARGET_ASM_SELECT_SECTION default_select_section
-
 #undef MAX_OFILE_ALIGNMENT
 #define MAX_OFILE_ALIGNMENT (32768 * 8)
 
-#undef TARGET_HAVE_SWITCHABLE_BSS_SECTIONS
-
 #undef STRING_LIMIT
 #define STRING_LIMIT ((unsigned) 64)
 
-/* Setup `readonly_data_section' in `avr_asm_init_sections'.  */
-#undef READONLY_DATA_SECTION_ASM_OP
-
 /* Take care of `signal' and `interrupt' attributes.  */
 #undef ASM_DECLARE_FUNCTION_NAME
 #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL)     \
index a38c046e430ea910a2c83afa1ef3e7f91ac17604..192c908505be1389dbc9a5303c406d289e632c52 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
+       
+       PR target/43746
+       * gcc.dg/array-quals-1.c: Don't xfail on AVR.
+
 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        * gcc.target/powerpc/no-r11-1.c: Change -mno-r11 to
index f01db686b45e9aac2569f9f508dec22c0bd65db5..17df983781757568e41d8ad361f0183c023cb47b 100644 (file)
@@ -4,7 +4,7 @@
 /* Origin: Joseph Myers <jsm@polyomino.org.uk> */
 /* { dg-do compile } */
 /* The MMIX port always switches to the .data section at the end of a file.  */
-/* { dg-final { scan-assembler-not "\\.data(?!\\.rel\\.ro)" { xfail powerpc*-*-aix* mmix-*-* x86_64-*-mingw* picochip--*-* avr-*-*} } } */
+/* { dg-final { scan-assembler-not "\\.data(?!\\.rel\\.ro)" { xfail powerpc*-*-aix* mmix-*-* x86_64-*-mingw* picochip--*-* } } } */
 static const int a[2] = { 1, 2 };
 const int a1[2] = { 1, 2 };
 typedef const int ci;