Commit eb1dcdff by Georg-Johann Lay Committed by Georg-Johann Lay

re PR target/43746 (-fmerge-constants and -fmerge-all-constants don't work at AVR target)

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
parent d31fb329
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> 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR bootstrap/49739 PR bootstrap/49739
......
...@@ -194,8 +194,8 @@ static const struct attribute_spec avr_attribute_table[] = ...@@ -194,8 +194,8 @@ static const struct attribute_spec avr_attribute_table[] =
#undef TARGET_SECTION_TYPE_FLAGS #undef TARGET_SECTION_TYPE_FLAGS
#define TARGET_SECTION_TYPE_FLAGS avr_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 #undef TARGET_ASM_INIT_SECTIONS
#define TARGET_ASM_INIT_SECTIONS avr_asm_init_sections #define TARGET_ASM_INIT_SECTIONS avr_asm_init_sections
#undef TARGET_ENCODE_SECTION_INFO #undef TARGET_ENCODE_SECTION_INFO
...@@ -5091,8 +5091,11 @@ avr_asm_init_sections (void) ...@@ -5091,8 +5091,11 @@ avr_asm_init_sections (void)
progmem_section = get_unnamed_section (AVR_HAVE_JMP_CALL ? 0 : SECTION_CODE, progmem_section = get_unnamed_section (AVR_HAVE_JMP_CALL ? 0 : SECTION_CODE,
avr_output_progmem_section_asm_op, avr_output_progmem_section_asm_op,
NULL); 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; data_section->unnamed.callback = avr_output_data_section_asm_op;
bss_section->unnamed.callback = avr_output_bss_section_asm_op; bss_section->unnamed.callback = avr_output_bss_section_asm_op;
} }
...@@ -5101,7 +5104,7 @@ avr_asm_init_sections (void) ...@@ -5101,7 +5104,7 @@ avr_asm_init_sections (void)
/* Implement `TARGET_ASM_NAMED_SECTION'. */ /* Implement `TARGET_ASM_NAMED_SECTION'. */
/* Track need of __do_clear_bss, __do_copy_data for named sections. */ /* 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) avr_asm_named_section (const char *name, unsigned int flags, tree decl)
{ {
if (!avr_need_copy_data_p) if (!avr_need_copy_data_p)
......
...@@ -26,24 +26,12 @@ ...@@ -26,24 +26,12 @@
#undef PREFERRED_DEBUGGING_TYPE #undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG #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 #undef MAX_OFILE_ALIGNMENT
#define MAX_OFILE_ALIGNMENT (32768 * 8) #define MAX_OFILE_ALIGNMENT (32768 * 8)
#undef TARGET_HAVE_SWITCHABLE_BSS_SECTIONS
#undef STRING_LIMIT #undef STRING_LIMIT
#define STRING_LIMIT ((unsigned) 64) #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. */ /* Take care of `signal' and `interrupt' attributes. */
#undef ASM_DECLARE_FUNCTION_NAME #undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
......
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> 2011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/no-r11-1.c: Change -mno-r11 to * gcc.target/powerpc/no-r11-1.c: Change -mno-r11 to
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */ /* Origin: Joseph Myers <jsm@polyomino.org.uk> */
/* { dg-do compile } */ /* { dg-do compile } */
/* The MMIX port always switches to the .data section at the end of a file. */ /* 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 }; static const int a[2] = { 1, 2 };
const int a1[2] = { 1, 2 }; const int a1[2] = { 1, 2 };
typedef const int ci; typedef const int ci;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment