aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2015-01-29 11:03:02 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2015-01-29 11:03:02 +0000
commitc291690eb5bfc51a502854b0ab3b9486718a1661 (patch)
tree8d085c99ce016f7a300aee80759e8b6e0c48e514 /gcc/ipa-inline.c
parent2b6969cd7f409441be66aafda0d2cc7f27ed310c (diff)
downloadgcc-c291690eb5bfc51a502854b0ab3b9486718a1661.zip
gcc-c291690eb5bfc51a502854b0ab3b9486718a1661.tar.gz
gcc-c291690eb5bfc51a502854b0ab3b9486718a1661.tar.bz2
re PR middle-end/64805 (Specific use of __attribute ((always_inline)) breaks MPX functionality with -fcheck-pointer-bounds -mmpx)
gcc/ PR middle-end/64805 * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference to avoid error in cgraph node verification. gcc/testsuite/ PR middle-end/64805 * gcc.target/i386/pr64805.c: New. From-SVN: r220240
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index f91a6a5..be22890 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -2506,6 +2506,13 @@ early_inliner (function *fun)
#endif
node->remove_all_references ();
+ /* Rebuild this reference because it dosn't depend on
+ function's body and it's required to pass cgraph_node
+ verification. */
+ if (node->instrumented_version
+ && !node->instrumentation_clone)
+ node->create_reference (node->instrumented_version, IPA_REF_CHKP, NULL);
+
/* Even when not optimizing or not inlining inline always-inline
functions. */
inlined = inline_always_inline_functions (node);