Commit 199fb02a by Ilya Enkovich Committed by Ilya Enkovich

re PR middle-end/69729 ([CHKP] internal compiler error: Segmentation fault)

gcc/

	PR target/69729
	* lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
	to correctly determine instrumentation thunks.

gcc/testsuite/

	* g++.dg/lto/lto.exp: Include and init mpx.
	* g++.dg/lto/pr69729_0.C: New test.

From-SVN: r233376
parent 06ff7000
2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
PR target/69729
* lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
to correctly determine instrumentation thunks.
2016-02-12 Jakub Jelinek <jakub@redhat.com> 2016-02-12 Jakub Jelinek <jakub@redhat.com>
PR ipa/69241 PR ipa/69241
......
...@@ -2321,7 +2321,7 @@ lto_output (void) ...@@ -2321,7 +2321,7 @@ lto_output (void)
{ {
if (lto_symtab_encoder_encode_body_p (encoder, node) if (lto_symtab_encoder_encode_body_p (encoder, node)
&& !node->alias && !node->alias
&& (!node->thunk.thunk_p || !node->instrumented_version)) && (!node->thunk.thunk_p || !node->thunk.add_pointer_bounds_args))
{ {
if (flag_checking) if (flag_checking)
{ {
......
2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
* g++.dg/lto/lto.exp: Include and init mpx.
* g++.dg/lto/pr69729_0.C: New test.
2016-02-12 Jakub Jelinek <jakub@redhat.com> 2016-02-12 Jakub Jelinek <jakub@redhat.com>
PR ipa/69241 PR ipa/69241
......
...@@ -31,6 +31,7 @@ if $tracelevel then { ...@@ -31,6 +31,7 @@ if $tracelevel then {
load_lib standard.exp load_lib standard.exp
load_lib g++.exp load_lib g++.exp
load_lib target-libpath.exp load_lib target-libpath.exp
load_lib mpx-dg.exp
# Load the language-independent compabibility support procedures. # Load the language-independent compabibility support procedures.
load_lib lto.exp load_lib lto.exp
...@@ -42,6 +43,7 @@ if { ![check_effective_target_lto] } { ...@@ -42,6 +43,7 @@ if { ![check_effective_target_lto] } {
g++_init g++_init
lto_init no-mathlib lto_init no-mathlib
mpx_init
# Define an identifier for use with this suite to avoid name conflicts # Define an identifier for use with this suite to avoid name conflicts
# with other lto tests running at the same time. # with other lto tests running at the same time.
...@@ -57,4 +59,5 @@ foreach src [lsort [find $srcdir/$subdir *_0.\[cC\]]] { ...@@ -57,4 +59,5 @@ foreach src [lsort [find $srcdir/$subdir *_0.\[cC\]]] {
lto-execute $src $sid lto-execute $src $sid
} }
mpx_finish
lto_finish lto_finish
/* { dg-lto-do link } */
/* { dg-require-effective-target mpx } */
/* { dg-lto-options {{-fcheck-pointer-bounds -mmpx -flto -flto-partition=max}} } */
class cl1
{
public:
virtual ~cl1 () { };
};
class cl2
{
public:
virtual ~cl2 () { };
};
class cl3 : cl1, cl2
{
};
class cl4 : cl3
{
public:
~cl4 ();
};
cl4::~cl4 ()
{
}
int main (int argc, char **argv)
{
cl4 c;
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment