This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/31490] Compile error section type conflict



------- Comment #9 from dtemirbulatov at gmail dot com  2007-05-16 22:47 -------
This patch fixes both testcases

--- gcc/varasm.c.orig   2007-05-16 21:32:11.000000000 +0400
+++ gcc/varasm.c        2007-05-16 21:36:14.000000000 +0400
@@ -5762,12 +5762,14 @@ categorize_decl_for_section (tree decl, 
             be read-only or not, but whether the dynamic link will have to
             do something.  If so, we wish to segregate the data in order to
             minimize cache misses inside the dynamic linker.  */
-         if (reloc & targetm.asm_out.reloc_rw_mask ())
+         if (reloc & targetm.asm_out.reloc_rw_mask ()
+             && !lookup_attribute ("section", DECL_ATTRIBUTES (decl)))
            ret = reloc == 1 ? SECCAT_DATA_REL_LOCAL : SECCAT_DATA_REL;
          else
            ret = SECCAT_DATA;
        }
-      else if (reloc & targetm.asm_out.reloc_rw_mask ())
+      else if (reloc & targetm.asm_out.reloc_rw_mask ()
+              && !lookup_attribute ("section", DECL_ATTRIBUTES (decl)))
        ret = reloc == 1 ? SECCAT_DATA_REL_RO_LOCAL : SECCAT_DATA_REL_RO;
       else if (reloc || flag_merge_constants < 2)
        /* C and C++ don't allow different variables to share the same

, bootstraped and tested on i686-pc-linux-gnu with no new regressions, tested
4.2 version with gdb-sim on following architectures arm-elf, arm-none-eabi,
mips-elf, mipsisa64-elf, powerpc-eabisim, sh-elf, powerpc-unknown-eabispe with
no new regressions


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31490


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]