[OB] Avoid testcase build failures with -Wunused-value

Message ID 1592911602-4914-1-git-send-email-gbenson@redhat.com
State New
Headers show
Series
  • [OB] Avoid testcase build failures with -Wunused-value
Related show

Commit Message

Jose E. Marchesi via Gdb-patches June 23, 2020, 11:26 a.m.
A number of testcases fail to build with -Wunused-value enabled.
This commit adds dummy values to avoid this.

gdb/testsuite/ChangeLog:

	* gdb.cp/namespace.cc: Avoid build failure with -Wunused-value.
	* gdb.cp/nsimport.cc: Likewise.
	* gdb.cp/nsnested.cc: Likewise.
	* gdb.cp/nsnoimports.cc: Likewise.
	* gdb.cp/nsusing.cc: Likewise.
	* gdb.cp/smartp.cc: Likewise.
	* gdb.python/py-pp-integral.c: Likewise.
	* gdb.python/py-pp-re-notag.c: Likewise.
---
 gdb/testsuite/ChangeLog                   | 11 +++++++++++
 gdb/testsuite/gdb.cp/namespace.cc         | 22 +++++++++++-----------
 gdb/testsuite/gdb.cp/nsimport.cc          |  6 +++---
 gdb/testsuite/gdb.cp/nsnested.cc          |  2 +-
 gdb/testsuite/gdb.cp/nsnoimports.cc       | 12 ++++++------
 gdb/testsuite/gdb.cp/nsusing.cc           | 12 ++++++------
 gdb/testsuite/gdb.cp/smartp.cc            |  8 ++++----
 gdb/testsuite/gdb.python/py-pp-integral.c |  4 ++--
 gdb/testsuite/gdb.python/py-pp-re-notag.c |  4 ++--
 9 files changed, 46 insertions(+), 35 deletions(-)

-- 
1.8.3.1

Comments

Jose E. Marchesi via Gdb-patches June 23, 2020, 11:41 a.m. | #1
On 6/23/20 12:26 PM, Gary Benson via Gdb-patches wrote:
> --- a/gdb/testsuite/gdb.cp/namespace.cc

> +++ b/gdb/testsuite/gdb.cp/namespace.cc

> @@ -150,22 +150,22 @@ namespace C

>        // plan to have GDB try to print out, just to make sure that the

>        // compiler and I agree which ones should be legal!  It's easy

>        // to screw up when testing the boundaries of namespace stuff.

> -      c;

> +      int unused1 = c;


It looks like such a fix will only work until the compiler decides
to enable -Wunused-variable by default too:

testsuite/gdb.cp/namespace.cc:153:11: warning: unused variable 'unused' [-Wunused-variable]
      int unused = c;
          ^

Try compiling the testcase with -Wall, with both g++ and clang++:

 $ clang++ testsuite/gdb.cp/namespace.cc -Wall

I think we should fix this with the more usual cast-to-void way:

 (void) c;

etc.
Jose E. Marchesi via Gdb-patches June 23, 2020, 11:45 a.m. | #2
Pedro Alves wrote:
> On 6/23/20 12:26 PM, Gary Benson via Gdb-patches wrote:

> > --- a/gdb/testsuite/gdb.cp/namespace.cc

> > +++ b/gdb/testsuite/gdb.cp/namespace.cc

> > @@ -150,22 +150,22 @@ namespace C

> >        // plan to have GDB try to print out, just to make sure that the

> >        // compiler and I agree which ones should be legal!  It's easy

> >        // to screw up when testing the boundaries of namespace stuff.

> > -      c;

> > +      int unused1 = c;

> 

> It looks like such a fix will only work until the compiler decides

> to enable -Wunused-variable by default too:

> 

> testsuite/gdb.cp/namespace.cc:153:11: warning: unused variable 'unused' [-Wunused-variable]

>       int unused = c;

>           ^

> 

> Try compiling the testcase with -Wall, with both g++ and clang++:

> 

>  $ clang++ testsuite/gdb.cp/namespace.cc -Wall

> 

> I think we should fix this with the more usual cast-to-void way:

> 

>  (void) c;


Ok, but, out of interest, what stops the compiler ignoring that?

Thanks,
Gary
Jose E. Marchesi via Gdb-patches June 23, 2020, 11:53 a.m. | #3
On 6/23/20 12:45 PM, Gary Benson wrote:
> Pedro Alves wrote:

>> On 6/23/20 12:26 PM, Gary Benson via Gdb-patches wrote:

>>> --- a/gdb/testsuite/gdb.cp/namespace.cc

>>> +++ b/gdb/testsuite/gdb.cp/namespace.cc

>>> @@ -150,22 +150,22 @@ namespace C

>>>        // plan to have GDB try to print out, just to make sure that the

>>>        // compiler and I agree which ones should be legal!  It's easy

>>>        // to screw up when testing the boundaries of namespace stuff.

>>> -      c;

>>> +      int unused1 = c;

>>

>> It looks like such a fix will only work until the compiler decides

>> to enable -Wunused-variable by default too:

>>

>> testsuite/gdb.cp/namespace.cc:153:11: warning: unused variable 'unused' [-Wunused-variable]

>>       int unused = c;

>>           ^

>>

>> Try compiling the testcase with -Wall, with both g++ and clang++:

>>

>>  $ clang++ testsuite/gdb.cp/namespace.cc -Wall

>>

>> I think we should fix this with the more usual cast-to-void way:

>>

>>  (void) c;

> 

> Ok, but, out of interest, what stops the compiler ignoring that?


I don't know.  That's a pattern people have been using ages,
it may be special cased.

Thanks,
Pedro Alves

Patch

diff --git a/gdb/testsuite/gdb.cp/namespace.cc b/gdb/testsuite/gdb.cp/namespace.cc
index f918b63..1ff3426 100644
--- a/gdb/testsuite/gdb.cp/namespace.cc
+++ b/gdb/testsuite/gdb.cp/namespace.cc
@@ -150,22 +150,22 @@  namespace C
       // plan to have GDB try to print out, just to make sure that the
       // compiler and I agree which ones should be legal!  It's easy
       // to screw up when testing the boundaries of namespace stuff.
-      c;
+      int unused1 = c;
       //cc;
-      C::cc;
-      cd;
+      int unused2 = C::cc;
+      int unused3 = cd;
       //C::D::cd;
-      E::cde;
-      shadow;
+      int unused4 = E::cde;
+      int unused5 = shadow;
       //E::ce;
-      cX;
-      F::cXf;
-      F::cXfX;
-      X;
-      G::Xg;
+      int unused6 = cX;
+      int unused7 = F::cXf;
+      int unused8 = F::cXfX;
+      int unused9 = X;
+      int unusedA = G::Xg;
       //cXOtherFile;
       //XOtherFile;
-      G::XgX;
+      int unusedB = G::XgX;
 
       return;
     }
diff --git a/gdb/testsuite/gdb.cp/nsimport.cc b/gdb/testsuite/gdb.cp/nsimport.cc
index 6b180d6..5fc57b0 100644
--- a/gdb/testsuite/gdb.cp/nsimport.cc
+++ b/gdb/testsuite/gdb.cp/nsimport.cc
@@ -13,8 +13,8 @@  namespace{
 
 int main()
 {
-  x;
-  xx;
-  xxx;
+  int unused1 = x;
+  int unused2 = xx;
+  int unused3 = xxx;
   return 0;
 }
diff --git a/gdb/testsuite/gdb.cp/nsnested.cc b/gdb/testsuite/gdb.cp/nsnested.cc
index 9723f87..fc3e11f 100644
--- a/gdb/testsuite/gdb.cp/nsnested.cc
+++ b/gdb/testsuite/gdb.cp/nsnested.cc
@@ -15,7 +15,7 @@  namespace C
     int
     second()
     {
-      ab;
+      int unused = ab;
       return 0;
     }
   }
diff --git a/gdb/testsuite/gdb.cp/nsnoimports.cc b/gdb/testsuite/gdb.cp/nsnoimports.cc
index d1c68ab..9968c35 100644
--- a/gdb/testsuite/gdb.cp/nsnoimports.cc
+++ b/gdb/testsuite/gdb.cp/nsnoimports.cc
@@ -18,9 +18,9 @@  namespace A
     }
 
     int first(){
-      _a;
-      ab;
-      C::abc;
+      int unused1 = _a;
+      int unused2 = ab;
+      int unused3 = C::abc;
       return C::second();
     }
   }
@@ -30,8 +30,8 @@  namespace A
 int
 main()
 {
-  A::_a;
-  A::B::ab;
-  A::B::C::abc;
+  int unused1 = A::_a;
+  int unused2 = A::B::ab;
+  int unused3 = A::B::C::abc;
   return A::B::first();
 }
diff --git a/gdb/testsuite/gdb.cp/nsusing.cc b/gdb/testsuite/gdb.cp/nsusing.cc
index 72ff941..980a91a 100644
--- a/gdb/testsuite/gdb.cp/nsusing.cc
+++ b/gdb/testsuite/gdb.cp/nsusing.cc
@@ -35,7 +35,7 @@  namespace L
   using namespace J;
   int marker8 ()
   {
-    jx;
+    int unused = jx;
     return K::marker9 ();
   }
 }
@@ -53,7 +53,7 @@  namespace I
   int marker7 ()
   {
     using namespace G::H;
-    ghx;
+    int unused = ghx;
     return L::marker8 ();
   }
 }
@@ -69,7 +69,7 @@  namespace E
 using namespace E::F;
 int marker6 ()
 {
-  efx;
+  int unused = efx;
   return I::marker7 ();
 }
 
@@ -92,7 +92,7 @@  namespace D
 using namespace C;
 int marker5 ()
 {
-  cc;
+  int unused = cc;
   return marker6 ();
 }
 
@@ -110,7 +110,7 @@  int marker3 ()
 int marker2 ()
 {
   namespace B = A;
-  B::_a;
+  int unused = B::_a;
   return marker3 ();
 }
 
@@ -134,6 +134,6 @@  int marker1 ()
 int main ()
 {
   using namespace A;
-  _a;
+  int unused = _a;
   return marker1 ();
 }
diff --git a/gdb/testsuite/gdb.cp/smartp.cc b/gdb/testsuite/gdb.cp/smartp.cc
index 2e71d1a..ed52102 100644
--- a/gdb/testsuite/gdb.cp/smartp.cc
+++ b/gdb/testsuite/gdb.cp/smartp.cc
@@ -131,12 +131,12 @@  int main(){
   sp3->foo(1);
   sp3->foo('a');
 
-  sp4->a;
-  sp4->b;
+  int unused1 = sp4->a;
+  int unused2 = sp4->b;
 
   Type4 *mt4p = &mt4;
-  mt4p->a;
-  mt4p->b;
+  int unused3 = mt4p->a;
+  int unused4 = mt4p->b;
 
   A a;
   B b;
diff --git a/gdb/testsuite/gdb.python/py-pp-integral.c b/gdb/testsuite/gdb.python/py-pp-integral.c
index 5cefc00..eadb466 100644
--- a/gdb/testsuite/gdb.python/py-pp-integral.c
+++ b/gdb/testsuite/gdb.python/py-pp-integral.c
@@ -17,10 +17,10 @@ 
 
 typedef long time_t;
 
-static void
+static time_t
 tick_tock (time_t *t)
 {
-  *t++;
+  return *t++;
 }
 
 int
diff --git a/gdb/testsuite/gdb.python/py-pp-re-notag.c b/gdb/testsuite/gdb.python/py-pp-re-notag.c
index 5cefc00..eadb466 100644
--- a/gdb/testsuite/gdb.python/py-pp-re-notag.c
+++ b/gdb/testsuite/gdb.python/py-pp-re-notag.c
@@ -17,10 +17,10 @@ 
 
 typedef long time_t;
 
-static void
+static time_t
 tick_tock (time_t *t)
 {
-  *t++;
+  return *t++;
 }
 
 int