diff gcc/testsuite/g++.dg/torture/pr83619.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/g++.dg/torture/pr83619.C	Thu Oct 25 07:37:49 2018 +0900
@@ -0,0 +1,66 @@
+// { dg-do compile }
+int a;
+class d
+{
+public:
+  virtual unsigned c ();
+};
+class e : public d
+{
+};
+class i
+{
+  void h ();
+
+public:
+  void
+  operator= (e *f)
+  {
+    j<int>::c (f);
+    h ();
+  }
+  template <class> struct j
+  {
+    static void
+    c (e *g)
+    {
+      g->c ();
+    }
+  };
+};
+class k;
+class l
+{
+public:
+  l (int);
+  k *operator-> ();
+};
+class m final : e
+{
+  unsigned c ();
+};
+class k
+{
+public:
+  virtual int o (e *) = 0;
+};
+class H : d, k
+{
+  int o (e *);
+  i n;
+};
+unsigned
+m::c ()
+{
+  l b = 0;
+  b->o (this);
+  return a;
+}
+int
+H::o (e *p)
+{
+  n = p;
+  return a;
+}
+
+