aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2015-04-07 14:06:38 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2015-04-07 14:06:38 +0000
commit0e081bde913120cdf87ac288c814dfcc9733eacb (patch)
tree8f957240cb28deb74c102eb67e39f84c0ab21990 /gcc
parent23ebaa42a22c616412345a069edb48a6dc25282d (diff)
downloadgcc-0e081bde913120cdf87ac288c814dfcc9733eacb.zip
gcc-0e081bde913120cdf87ac288c814dfcc9733eacb.tar.gz
gcc-0e081bde913120cdf87ac288c814dfcc9733eacb.tar.bz2
ipa-comdats.c (ipa_comdats): Visit all thunks to set proper comdat group.
gcc/ * ipa-comdats.c (ipa_comdats): Visit all thunks to set proper comdat group. gcc/testsuite/ * gcc.target/i386/mpx/chkp-thunk-comdat-1.cc: New. * gcc.target/i386/mpx/chkp-thunk-comdat-2.cc: New. From-SVN: r221896
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ipa-comdats.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/mpx/chkp-thunk-comdat-1.cc18
-rw-r--r--gcc/testsuite/gcc.target/i386/mpx/chkp-thunk-comdat-2.cc26
5 files changed, 55 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f65dd4d..7b977dd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-07 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ * ipa-comdats.c (ipa_comdats): Visit all thunks
+ to set proper comdat group.
+
2015-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/65489
diff --git a/gcc/ipa-comdats.c b/gcc/ipa-comdats.c
index f349f9f..e24359c 100644
--- a/gcc/ipa-comdats.c
+++ b/gcc/ipa-comdats.c
@@ -377,7 +377,7 @@ ipa_comdats (void)
fprintf (dump_file, "To group: %s\n", IDENTIFIER_POINTER (group));
}
if (is_a <cgraph_node *> (symbol))
- dyn_cast <cgraph_node *>(symbol)->call_for_symbol_and_aliases
+ dyn_cast <cgraph_node *>(symbol)->call_for_symbol_thunks_and_aliases
(set_comdat_group_1,
*comdat_head_map.get (group),
true);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7684dbc..a51b9c5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-07 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ * gcc.target/i386/mpx/chkp-thunk-comdat-1.cc: New.
+ * gcc.target/i386/mpx/chkp-thunk-comdat-2.cc: New.
+
2015-04-07 Bin Cheng <bin.cheng@arm.com>
* gcc.target/arm/pr65647.c: Add option "-mfloat-abi=soft".
diff --git a/gcc/testsuite/gcc.target/i386/mpx/chkp-thunk-comdat-1.cc b/gcc/testsuite/gcc.target/i386/mpx/chkp-thunk-comdat-1.cc
new file mode 100644
index 0000000..26d3c48
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/mpx/chkp-thunk-comdat-1.cc
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fcheck-pointer-bounds -mmpx" } */
+
+namespace
+{
+ template <int dim>
+ int __attribute__((noinline))
+ f1 ()
+ {
+ return dim;
+ }
+}
+
+int
+test ()
+{
+ return f1<3> ();
+}
diff --git a/gcc/testsuite/gcc.target/i386/mpx/chkp-thunk-comdat-2.cc b/gcc/testsuite/gcc.target/i386/mpx/chkp-thunk-comdat-2.cc
new file mode 100644
index 0000000..2b1abe9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/mpx/chkp-thunk-comdat-2.cc
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fcheck-pointer-bounds -mmpx" } */
+
+class c1
+{
+public:
+ virtual int test1 (const char *);
+};
+
+class c2
+{
+public:
+ int test2 (const char *);
+};
+
+int
+c1::test1 (const char *)
+{
+ return 0;
+}
+
+int
+c2::test2 (const char *)
+{
+ return 0;
+}