]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/69729 ([CHKP] internal compiler error: Segmentation fault)
authorIlya Enkovich <enkovich.gnu@gmail.com>
Fri, 12 Feb 2016 13:17:28 +0000 (13:17 +0000)
committerIlya Enkovich <ienkovich@gcc.gnu.org>
Fri, 12 Feb 2016 13:17:28 +0000 (13:17 +0000)
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

gcc/ChangeLog
gcc/lto-streamer-out.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lto/lto.exp
gcc/testsuite/g++.dg/lto/pr69729_0.C [new file with mode: 0644]

index 642f7d3a80e12c721e6d87f541e8e9a105f72b10..65b32b85f5676d00ca033ab78984ee7b351e1800 100644 (file)
@@ -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
index 6bb76cc6ebb80cc668f8ec23bb46be1375cf7c25..997a28b01598c681b0c5e1cb4513f664c2084e94 100644 (file)
@@ -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)
                {
index 33d2f2227ba5a3344b8ea28f091867e9ee8928cc..6d65e1f208539df2a1b3780c4f758d5d2a84affa 100644 (file)
@@ -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
index 8d99418aef5cadd3d3701621787793bf115f5bec..48f09476381573327de74fe39a32e161ffaaf8ae 100644 (file)
@@ -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 (file)
index 0000000..b736406
--- /dev/null
@@ -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;
+}