The following series of patches improves the handling of msp430-specific attributes by making use of generic mechanisms for performing common tasks (i.e. handling attribute conflicts, putting data objects in sections).
The patches also transition the msp430 back end to fully use the generic handling of the "noinit" attribute. Successfully bootstrapped and regtested on x86_64-pc-linux-gnu. Successfully regtested for msp430-elf. As a further sanity test I built GCC for arm-eabi and ran execute.exp=noinit-attribute.c to confirm the noinit attribute still works as expected for ARM. Ok for trunk? Jozef Lawrynowicz (3): Implement TARGET_HANDLE_GENERIC_ATTRIBUTE MSP430: Setup exclusion tables for function and data attributes MSP430: Use default_elf_select_section to determine sections for data where possible gcc/c-family/c-attribs.c | 39 ++- gcc/config/msp430/msp430.c | 320 ++++++++++++------ gcc/doc/tm.texi | 8 + gcc/doc/tm.texi.in | 2 + gcc/hooks.c | 6 + gcc/hooks.h | 1 + gcc/target.def | 11 + .../gcc.target/msp430/data-attributes-2.c | 51 +++ .../gcc.target/msp430/function-attributes-4.c | 27 +- .../msp430/region-attribute-misuse.c | 6 +- 10 files changed, 336 insertions(+), 135 deletions(-) create mode 100644 gcc/testsuite/gcc.target/msp430/data-attributes-2.c