re PR middle-end/31490 (Compile error section type conflict)

2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
	    Steve Ellcey  <sje@cup.hp.com>

	PR middle-end/31490
	* varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
	if section attribute used.

Co-Authored-By: Steve Ellcey <sje@cup.hp.com>

From-SVN: r166887
This commit is contained in:
Dinar Temirbulatov 2010-11-18 01:54:05 +03:00 committed by Steve Ellcey
parent 3a3a1e7484
commit 86f27ba678
2 changed files with 14 additions and 3 deletions

View file

@ -1,3 +1,10 @@
2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
Steve Ellcey <sje@cup.hp.com>
PR middle-end/31490
* varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
if section attribute used.
2010-11-17 Jan Hubicka <jh@suse.cz>
* builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not

View file

@ -6102,13 +6102,17 @@ categorize_decl_for_section (const_tree decl, int reloc)
/* Here the reloc_rw_mask is not testing whether the section should
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 ())
minimize cache misses inside the dynamic linker. If the data
has a section attribute, ignore reloc_rw_mask() so that all data
in a given named section is catagorized in the same way. */
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