From: ienkovich Date: Fri, 12 Feb 2016 13:17:28 +0000 (+0000) Subject: gcc/ X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=52543fda013af8284fdd6efb9344ac635013b092;p=thirdparty%2Fgcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233376 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 642f7d3a80e1..65b32b85f567 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-02-12 Ilya Enkovich + + 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 PR ipa/69241 diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index 6bb76cc6ebb8..997a28b01598 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 33d2f2227ba5..6d65e1f20853 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-02-12 Ilya Enkovich + + * g++.dg/lto/lto.exp: Include and init mpx. + * g++.dg/lto/pr69729_0.C: New test. + 2016-02-12 Jakub Jelinek PR ipa/69241 diff --git a/gcc/testsuite/g++.dg/lto/lto.exp b/gcc/testsuite/g++.dg/lto/lto.exp index 8d99418aef5c..48f094763815 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 000000000000..b736406e0cbe --- /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; +}