diff gcc/testsuite/g++.dg/ipa/ipa-icf-4.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 1830386684a0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/g++.dg/ipa/ipa-icf-4.C	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,47 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-ipa-icf -fno-inline" } */
+
+namespace {
+struct A
+{
+  virtual void foo(void) {}
+};
+struct B: virtual A
+{
+  virtual void foo(void) {}
+};
+struct C: virtual A
+{
+  virtual void bar(void) {}
+};
+struct D: virtual A
+{
+  virtual void sparta(void) {}
+};
+struct E: B,C,D
+{
+  virtual void foo(void) {}
+  virtual void barbar(void) {}
+};
+} // anonymous namespace
+
+int main()
+{
+  struct A a;
+  struct B b;
+  struct C c;
+  struct D d;
+  struct E e;
+
+  a.foo();
+  b.foo();
+  c.bar();
+  d.foo();
+  d.sparta();
+  e.barbar();
+
+  return 123;
+}
+
+/* { dg-final { scan-ipa-dump "\(Unified; Variable alias has been created\)|\(Symbol aliases are not supported by target\)" "icf"  } } */
+/* { dg-final { scan-ipa-dump "Equal symbols: \[67\]" "icf"  } } */