re PR sanitizer/63845 (c-c++-common/asan/bitfield-[12345].c fails on i?86 -with -fpic)

gcc/

	PR sanitizer/63845
	* function.c (assign_parms): Move init of pic_offset_table_rtx
	from here to...
	* cfgexpand.c (expand_used_vars): ...here.

gcc/testsuite/

	PR sanitizer/63845
	* gcc.dg/asan/pr63845.c: New test.

From-SVN: r217825
This commit is contained in:
Igor Zamyatin 2014-11-20 08:15:21 +00:00 committed by Ilya Enkovich
parent 1be0e58d30
commit 8f51aa6b26
5 changed files with 32 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2014-11-20 Igor Zamyatin <igor.zamyatin@intel.com>
PR sanitizer/63845
* function.c (assign_parms): Move init of pic_offset_table_rtx
from here to...
* cfgexpand.c (expand_used_vars): ...here.
2014-11-19 Jan Hubicka <hubicka@ucw.cz>
* tree.c (free_lang_data_in_type): If BINFO has no important

View File

@ -1722,6 +1722,9 @@ expand_used_vars (void)
init_vars_expansion ();
if (targetm.use_pseudo_pic_reg ())
pic_offset_table_rtx = gen_reg_rtx (Pmode);
hash_map<tree, tree> ssa_name_decls;
for (i = 0; i < SA.map->num_partitions; i++)
{

View File

@ -3679,11 +3679,6 @@ assign_parms (tree fndecl)
fnargs.release ();
/* Initialize pic_offset_table_rtx with a pseudo register
if required. */
if (targetm.use_pseudo_pic_reg ())
pic_offset_table_rtx = gen_reg_rtx (Pmode);
/* Output all parameter conversion instructions (possibly including calls)
now that all parameters have been copied out of hard registers. */
emit_insn (all.first_conversion_insn);

View File

@ -1,3 +1,8 @@
2014-11-20 Igor Zamyatin <igor.zamyatin@intel.com>
PR sanitizer/63845
* gcc.dg/asan/pr63845.c: New test.
2014-11-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR sanitizer/63939

View File

@ -0,0 +1,17 @@
/* PR sanitizer/63845 */
/* { dg-do compile } */
/* { dg-options "-fPIC" { target fpic } } */
int __attribute__ ((noinline, noclone))
foo (void *p)
{
return *(int*)p;
}
int main ()
{
char a = 0;
foo (&a);
return 0;
}