+2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ PR ipa/71624
+ * ipa-inline-analysis.c (compute_inline_parameters): Set
+ local.can_change_signature to false for intrumentation
+ thunk callees.
+
2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
node->local.can_change_signature = !e;
}
}
+ /* Functions called by instrumentation thunk can't change signature
+ because instrumentation thunk modification is not supported. */
+ if (node->local.can_change_signature)
+ for (e = node->callers; e; e = e->next_caller)
+ if (e->caller->thunk.thunk_p
+ && e->caller->thunk.add_pointer_bounds_args)
+ {
+ node->local.can_change_signature = false;
+ break;
+ }
estimate_function_body_sizes (node, early);
pop_cfun ();
}
+2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ PR ipa/71624
+ * g++.dg/pr71624.C: New test.
+
2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
* lib/target-supports.exp: Generate add_options_for_arm_arch_FUNC and
--- /dev/null
+/* PR71624 */
+// { dg-do compile { target i?86-*-* x86_64-*-* } }
+/* { dg-options "-fcheck-pointer-bounds -mmpx -O2" } */
+
+class c1
+{
+public:
+ virtual int fn1 () const;
+ int fn2 (const int *) const;
+};
+
+class c2
+{
+ int fn1 ();
+ c1 obj;
+};
+
+int
+c1::fn1 () const
+{
+ return 0;
+}
+
+int
+c1::fn2 (const int *) const
+{
+ return this->fn1 ();
+}
+
+int
+c2::fn1 ()
+{
+ return obj.fn2 (0);
+}
+