ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor flags for instrumentation thunk.

gcc/

	* ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
	flags for instrumentation thunk.
	(chkp_produce_thunks): Likewise.

gcc/testsuite/

	* gcc.dg/lto/chkp-ctor-merge_0.c: New.

From-SVN: r221877
This commit is contained in:
Ilya Enkovich 2015-04-06 10:41:55 +00:00 committed by Ilya Enkovich
parent f1e5203841
commit 71671f5d52
4 changed files with 39 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
* ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
flags for instrumentation thunk.
(chkp_produce_thunks): Likewise.
2015-04-05 Martin Liska <mliska@suse.cz>
PR ipa/65665

View file

@ -550,6 +550,9 @@ chkp_maybe_create_clone (tree fndecl)
clone->thunk.thunk_p = true;
clone->thunk.add_pointer_bounds_args = true;
clone->create_edge (node, NULL, 0, CGRAPH_FREQ_BASE);
/* Thunk shouldn't be a cdtor. */
DECL_STATIC_CONSTRUCTOR (clone->decl) = 0;
DECL_STATIC_DESTRUCTOR (clone->decl) = 0;
}
else
{
@ -714,6 +717,9 @@ chkp_produce_thunks (bool early)
0, CGRAPH_FREQ_BASE);
node->create_reference (node->instrumented_version,
IPA_REF_CHKP, NULL);
/* Thunk shouldn't be a cdtor. */
DECL_STATIC_CONSTRUCTOR (node->decl) = 0;
DECL_STATIC_DESTRUCTOR (node->decl) = 0;
}
}

View file

@ -1,3 +1,7 @@
2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
* gcc.dg/lto/chkp-ctor-merge_0.c: New.
2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
PR target/65647

View file

@ -0,0 +1,23 @@
/* { dg-lto-do run } */
/* { dg-require-effective-target mpx } */
/* { dg-lto-options { { -O2 -flto -fcheck-pointer-bounds -mmpx -nodefaultlibs -lc } } } */
int glob = 1;
void __attribute__((constructor))
ctor1 ()
{
glob += 1;
}
void __attribute__((constructor))
ctor2 ()
{
glob -= 2;
}
int main (int argc, const char **argv)
{
return glob;
}