From c3a7a7b8abb7e356c34c9bccde895d76c514e2dd Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Fri, 12 Jul 2019 09:40:39 -0600 Subject: [PATCH] c6x.c (c6x_section_type): Clear SECTION_NOTYPE for the ".far" section. * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE for the ".far" section. From-SVN: r273447 --- gcc/ChangeLog | 5 +++++ gcc/config/c6x/c6x.c | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 84fee9e0dd9..4f32256c8d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-07-12 Jeff Law + + * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE + for the ".far" section. + 2019-07-12 Richard Biener PR tree-optimization/91145 diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c index 93841e4abef..f6c9bbfc674 100644 --- a/gcc/config/c6x/c6x.c +++ b/gcc/config/c6x/c6x.c @@ -1083,6 +1083,14 @@ c6x_section_type_flags (tree decl, const char *name, int reloc) flags |= default_section_type_flags (decl, name, reloc); + /* The ".far" section will be declared with @nobits elsewhere. + But when declared via this path it will not have the @nobits + flag because of SECTION_NOTYPE. This causes linker warnings + due to the mismatched attribute. Clearing SECTION_NOTYPE + for the ".far" section is sufficient to fix this problem. */ + if (strcmp (name, ".far") == 0) + flags &= ~SECTION_NOTYPE; + return flags; } -- 2.30.2