Remove stale "register" bits from gdb.cp/misc.cc (Re: [PATCH] Move "register" test out of classes.exp to a separate testcase)

Message ID 9ed2dbe1-9f38-7035-9cbc-457d2f0c7889@palves.net
State New
Headers show
Series
  • Remove stale "register" bits from gdb.cp/misc.cc (Re: [PATCH] Move "register" test out of classes.exp to a separate testcase)
Related show

Commit Message

Pedro Alves Aug. 22, 2020, 5:11 p.m.
On 8/22/20 6:08 PM, Pedro Alves wrote:

> See patch below.  I propose we push this in instead.


And then this on top.

From 4b75bb6d0a2d171f3a1531de2e820c7e32c2ca72 Mon Sep 17 00:00:00 2001
From: Pedro Alves <pedro@palves.net>

Date: Sat, 22 Aug 2020 18:00:55 +0100
Subject: [PATCH] Remove stale "register" bits from gdb.cp/misc.cc

gdb.cp/misc.cc seems to have been originally copied from
gdb.cp/classes.cc.  The testcases that use it, misc.exp and
inherit.exp don't reference the "register" bits anywhere.  Remove
them, since they trigger warnings with newer GCCs, given "register" is
being removed in C++17.

gdb/testsuite/ChangeLog:

	* gdb.cp/inherit.exp: No longer pass -Wno-deprecated-register.
	* gdb.cp/misc.exp: No longer pass -Wno-deprecated-register.
	* gdb.cp/misc.cc (class small, small::method, marker_reg1)
	(register_class): Delete.
	(main): Don't call register_class.
---
 gdb/testsuite/gdb.cp/inherit.exp |  3 +--
 gdb/testsuite/gdb.cp/misc.cc     | 37 -------------------------------------
 gdb/testsuite/gdb.cp/misc.exp    |  3 +--
 3 files changed, 2 insertions(+), 41 deletions(-)


base-commit: 33bf4c5c10d246543c7a9a8ba4bbbe173d7f3367
prerequisite-patch-id: 3b9e228c420206fff81de20b3f1eb0e11f6a210b
-- 
2.14.5

Comments

Mark Wielaard Aug. 22, 2020, 6:53 p.m. | #1
On Sat, Aug 22, 2020 at 06:11:49PM +0100, Pedro Alves wrote:
> On 8/22/20 6:08 PM, Pedro Alves wrote:

> 

> > See patch below.  I propose we push this in instead.

> 

> And then this on top.


I cannot claim to fully understand the patches, but they work on my
setup, classes, misc and inherit all compile and PASS all tests (misc
does have one duplicate "pointer addition with integer reference").

Cheers,

Mark
Simon Marchi Aug. 22, 2020, 7:01 p.m. | #2
On 2020-08-22 2:53 p.m., Mark Wielaard wrote:
> On Sat, Aug 22, 2020 at 06:11:49PM +0100, Pedro Alves wrote:

>> On 8/22/20 6:08 PM, Pedro Alves wrote:

>>

>>> See patch below.  I propose we push this in instead.

>>

>> And then this on top.

> 

> I cannot claim to fully understand the patches, but they work on my

> setup, classes, misc and inherit all compile and PASS all tests (misc

> does have one duplicate "pointer addition with integer reference").

> 

> Cheers,

> 

> Mark

> 


Thanks, that LGTM.

Simon
Simon Marchi Aug. 22, 2020, 7:01 p.m. | #3
On 2020-08-22 3:01 p.m., Simon Marchi wrote:
> On 2020-08-22 2:53 p.m., Mark Wielaard wrote:

>> On Sat, Aug 22, 2020 at 06:11:49PM +0100, Pedro Alves wrote:

>>> On 8/22/20 6:08 PM, Pedro Alves wrote:

>>>

>>>> See patch below.  I propose we push this in instead.

>>>

>>> And then this on top.

>>

>> I cannot claim to fully understand the patches, but they work on my

>> setup, classes, misc and inherit all compile and PASS all tests (misc

>> does have one duplicate "pointer addition with integer reference").

>>

>> Cheers,

>>

>> Mark

>>

> 

> Thanks, that LGTM.

> 

> Simon

> 


Err, I replied to the wrong message, forget about this one.

Simon
Pedro Alves Sept. 13, 2020, 4:40 p.m. | #4
On 8/22/20 7:53 PM, Mark Wielaard wrote:
> On Sat, Aug 22, 2020 at 06:11:49PM +0100, Pedro Alves wrote:

>> On 8/22/20 6:08 PM, Pedro Alves wrote:

>>

>>> See patch below.  I propose we push this in instead.

>>

>> And then this on top.

> 

> I cannot claim to fully understand the patches, but they work on my

> setup, classes, misc and inherit all compile and PASS all tests (misc

> does have one duplicate "pointer addition with integer reference").


Alright, I've now merged them.

Thanks,
Pedro Alves

Patch

diff --git a/gdb/testsuite/gdb.cp/inherit.exp b/gdb/testsuite/gdb.cp/inherit.exp
index 2d4635c96ad..e9549d3ebe0 100644
--- a/gdb/testsuite/gdb.cp/inherit.exp
+++ b/gdb/testsuite/gdb.cp/inherit.exp
@@ -26,8 +26,7 @@  load_lib "cp-support.exp"
 
 standard_testfile misc.cc
 
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
-	 {debug c++ additional_flags=-Wno-deprecated-register}]} {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile  {debug c++}]} {
     return -1
 }
 
diff --git a/gdb/testsuite/gdb.cp/misc.cc b/gdb/testsuite/gdb.cp/misc.cc
index 41fb9d2f2db..24d40c461ae 100644
--- a/gdb/testsuite/gdb.cp/misc.cc
+++ b/gdb/testsuite/gdb.cp/misc.cc
@@ -511,42 +511,6 @@  typedef struct {
 } tagless_struct;
 tagless_struct v_tagless;
 
-/* Try to get the compiler to allocate a class in a register.  */
-class small {
- public:
-  int x;
-  int method ();
-};
-
-int
-small::method ()
-{
-  return x + 5;
-}
-
-void marker_reg1 () {}
-
-int
-register_class ()
-{
-  /* We don't call any methods for v, so gcc version cygnus-2.3.3-930220
-     might put this variable in a register.  This is a lose, though, because
-     it means that GDB can't call any methods for that variable.  */
-  register small v;
-
-  int i;
-
-  /* Perform a computation sufficiently complicated that optimizing compilers
-     won't optimized out the variable.  If some compiler constant-folds this
-     whole loop, maybe using a parameter to this function here would help.  */
-  v.x = 0;
-  for (i = 0; i < 13; ++i)
-    v.x += i;
-  --v.x; /* v.x is now 77 */
-  marker_reg1 ();
-  return v.x + 5;
-}
-
 void dummy()
 {
   v_bool = true;
@@ -574,7 +538,6 @@  main()
   inheritance1 ();
   inheritance3 ();
   enums1 ();
-  register_class ();
 
   /* FIXME: pmi gets optimized out.  Need to do some more computation with
      it or something.  (No one notices, because the test is xfail'd anyway,
diff --git a/gdb/testsuite/gdb.cp/misc.exp b/gdb/testsuite/gdb.cp/misc.exp
index 61034bf8088..cd6f0f7070a 100644
--- a/gdb/testsuite/gdb.cp/misc.exp
+++ b/gdb/testsuite/gdb.cp/misc.exp
@@ -19,8 +19,7 @@  if { [skip_cplus_tests] } { continue }
 
 standard_testfile .cc
 
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
-	 {debug c++ additional_flags=-Wno-deprecated-register}]} {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
     return -1
 }