re PR ipa/92421 (ICE in inline_small_functions, at ipa-inline.c:2001 since r277759)
authorJakub Jelinek <jakub@redhat.com>
Thu, 14 Nov 2019 01:02:16 +0000 (02:02 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 14 Nov 2019 01:02:16 +0000 (02:02 +0100)
PR ipa/92421
* g++.dg/torture/pr92421.C: Add -Wno-return-type to
dg-additional-options.  Avoid -Wwrite-string warnings, most of
-Wreturn-type warnings, define bf ctor.  Use struct instead of class
with public: at the start.

From-SVN: r278192

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/torture/pr92421.C

index 3fa120855db0e0fd0b8dc8d9e34a386b6adaa33a..d480dacd4698ac2551afad7fd4bb07beee534702 100644 (file)
@@ -1,5 +1,11 @@
 2019-11-14  Jakub Jelinek  <jakub@redhat.com>
 
+       PR ipa/92421
+       * g++.dg/torture/pr92421.C: Add -Wno-return-type to
+       dg-additional-options.  Avoid -Wwrite-string warnings, most of
+       -Wreturn-type warnings, define bf ctor.  Use struct instead of class
+       with public: at the start.
+
        * g++.dg/cpp0x/alias-decl-pr92206-3.C: Require effective target c++14
        rather than c++11.
 
index 7adf53f7299a0f4eceb69f86ee0737dd21512eb1..2146e9416dbb74286a0f830a3ac3ca6b06e266af 100644 (file)
@@ -1,55 +1,49 @@
-/* { dg-do compile } */
+// PR ipa/92421
+// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
+
 typedef long a;
 void *b, *c;
 template <typename, typename> class d {};
 template <typename e, typename f> bool operator!=(d<e, f>, d<e, f>);
-class g {
-public:
-  g(char *);
+struct g {
+  g(const char *);
 };
-class j {
-public:
+struct j {
   j();
   void h();
   void i();
   void aj();
 };
-class m {
-public:
+struct m {
   m(bool);
 };
-class n {
-public:
+struct n {
   operator a();
 };
-class o {
-public:
+struct o {
   long am();
 };
-class H {
-public:
+struct H {
   class p {};
   virtual bool accept(const char *, unsigned long, p *, bool);
 };
-class q : H {
-public:
-  class r {
-  public:
+struct q : H {
+  struct r {
     enum at { au, av, aw };
   };
   enum { ax };
-  virtual void ay(char *, int, const char *, r::at, char *);
+  virtual void ay(const char *, int, const char *, r::at, const char *);
   virtual bool az(const g &, unsigned = ax);
   virtual bool ba(const int &, p *, bool);
   void bb(char *bc, long bd, char *, long be) {
-    class bf : public p {
-    public:
-      bf(long);
+    struct bf : public p {
+      bf(long) {}
     } bg(be);
     accept(bc, bd, &bg, true);
   }
 };
-class s {
+struct s {
   q *bi;
   bool bj();
 };
@@ -109,6 +103,7 @@ template <class bk> class t : q {
     while (kit != df)
       ;
     cx();
+    return false;
   }
   bool az(const g &, unsigned) {
     t dj;
@@ -157,8 +152,7 @@ template <class bk> class t : q {
   O db[6];
   bool bp;
 };
-class w : q {
-public:
+struct w : q {
   void dn();
   bool l() {
     m(true);
@@ -171,4 +165,5 @@ public:
 bool s::bj() {
   bi->az("");
   new t<w>;
+  return false;
 }