diff options
author | Ilya Enkovich <enkovich.gnu@gmail.com> | 2016-02-12 13:17:28 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2016-02-12 13:17:28 +0000 |
commit | 199fb02a7813cabc00dd5802f26aea27e977f372 (patch) | |
tree | 8bdfec0836975c557ee147985f03070d96b12c85 | |
parent | 06ff700018a769b76d4ec39b487fff46738ce84b (diff) | |
download | gcc-199fb02a7813cabc00dd5802f26aea27e977f372.zip gcc-199fb02a7813cabc00dd5802f26aea27e977f372.tar.gz gcc-199fb02a7813cabc00dd5802f26aea27e977f372.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto-streamer-out.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lto/lto.exp | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lto/pr69729_0.C | 35 |
5 files changed, 50 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 642f7d3..65b32b8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +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> PR ipa/69241 diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index 6bb76cc..997a28b 100644 --- a/gcc/lto-streamer-out.c +++ b/gcc/lto-streamer-out.c @@ -2321,7 +2321,7 @@ lto_output (void) { if (lto_symtab_encoder_encode_body_p (encoder, node) && !node->alias - && (!node->thunk.thunk_p || !node->instrumented_version)) + && (!node->thunk.thunk_p || !node->thunk.add_pointer_bounds_args)) { if (flag_checking) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 33d2f22..6d65e1f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +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> PR ipa/69241 diff --git a/gcc/testsuite/g++.dg/lto/lto.exp b/gcc/testsuite/g++.dg/lto/lto.exp index 8d99418..48f0947 100644 --- a/gcc/testsuite/g++.dg/lto/lto.exp +++ b/gcc/testsuite/g++.dg/lto/lto.exp @@ -31,6 +31,7 @@ if $tracelevel then { load_lib standard.exp load_lib g++.exp load_lib target-libpath.exp +load_lib mpx-dg.exp # Load the language-independent compabibility support procedures. load_lib lto.exp @@ -42,6 +43,7 @@ if { ![check_effective_target_lto] } { g++_init lto_init no-mathlib +mpx_init # Define an identifier for use with this suite to avoid name conflicts # with other lto tests running at the same time. @@ -57,4 +59,5 @@ foreach src [lsort [find $srcdir/$subdir *_0.\[cC\]]] { lto-execute $src $sid } +mpx_finish lto_finish diff --git a/gcc/testsuite/g++.dg/lto/pr69729_0.C b/gcc/testsuite/g++.dg/lto/pr69729_0.C new file mode 100644 index 0000000..b736406 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr69729_0.C @@ -0,0 +1,35 @@ +/* { 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; +} |