Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* FAIL: gdb.cp/cpexprs.exp: list base::overload(void)
@ 2011-04-01 15:09 Pedro Alves
  2011-04-01 15:53 ` Keith Seitz
  0 siblings, 1 reply; 4+ messages in thread
From: Pedro Alves @ 2011-04-01 15:09 UTC (permalink / raw)
  To: gdb-patches, Keith Seitz

I've been seeing these failures for a long while:

FAIL: gdb.cp/cpexprs.exp: list base::overload(void)
FAIL: gdb.cp/cpexprs.exp: setting breakpoint at base::overload(void)
FAIL: gdb.cp/cpexprs.exp: continue to base::overload(void)

gdb.log shows:

 list base::overload(void)
 the class `base' does not have any method instance named overload(void)
 (gdb) FAIL: gdb.cp/cpexprs.exp: list base::overload(void)

and indeed, base::overload(void) is const:

  // Some overloaded methods
  int overload (void) const { return 0; } // base::overload(void) const
  int overload (int i) const { return 1; } // base::overload(int) const
  int overload (short s) const { return 2; } // base::overload(short) const
  int overload (long l) const { return 3; } // base::overload(long) const
  int overload (char* a) const { return 4; } // base::overload(char*) const
  int overload (base& b) const { return 5; } // base::overload(base&) const

cpexprs.exp test all the other overloads with an explicit "const", but
the (void) one is tested for both const and non-nonst variants:

> # Overloaded methods (all are const -- we try to use the void
> # method with and without specifying "const")

Why is the non-const variant tried and expected to pass?

I tested as far back as 6.8 and it didn't work then either.  Is this
trying to be a reminder that GDB could be more forgiving and accept
the non-const overload, perhaps?  That'd sound more like as a
it-would-be-nice-if / feature-request than a bug, and shouldn't
be a FAIL.

Can we just drop it, like below?

-- 
Pedro Alves

Index: src/gdb/testsuite/gdb.cp/cpexprs.exp
===================================================================
--- src.orig/gdb/testsuite/gdb.cp/cpexprs.exp	2011-04-01 15:52:15.339770000 +0100
+++ src/gdb/testsuite/gdb.cp/cpexprs.exp	2011-04-01 15:53:18.469770000 +0100
@@ -196,12 +196,7 @@ add {base::~base} \
     - \
     -
 
-# Overloaded methods (all are const -- we try to use the void
-# method with and without specifying "const")
-add {base::overload(void)} \
-    {int (const base * const)} \
-    - \
-    {base::overload(void) const}
+# Overloaded methods (all are const)
 add {base::overload(void) const} \
     {int (const base * const)} \
     - \


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: FAIL: gdb.cp/cpexprs.exp: list base::overload(void)
  2011-04-01 15:09 FAIL: gdb.cp/cpexprs.exp: list base::overload(void) Pedro Alves
@ 2011-04-01 15:53 ` Keith Seitz
  2011-04-01 16:09   ` Pedro Alves
  0 siblings, 1 reply; 4+ messages in thread
From: Keith Seitz @ 2011-04-01 15:53 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches

On 04/01/2011 08:09 AM, Pedro Alves wrote:
>> # Overloaded methods (all are const -- we try to use the void
>> # method with and without specifying "const")
>
> Why is the non-const variant tried and expected to pass?

Yes, as you say:

> Is this trying to be a reminder that GDB could be more forgiving
> and accept the non-const overload, perhaps?

I wouldn't go so far as to say that gdb needs to be forgiving. This case 
is unambiguous, and IMO it is simply a bug/mis-feature. I put those 
tests there as a reminder that someone needs to figure out how to fix 
this... But:

> Can we just drop it, like below?

Perhaps it would have been better to either XFAIL or remove them 
altogether and add a bugzilla entry to track this. I was hoping to get 
to it, but as it turned out, there were "bigger fish to fry. :-(

Keith


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: FAIL: gdb.cp/cpexprs.exp: list base::overload(void)
  2011-04-01 15:53 ` Keith Seitz
@ 2011-04-01 16:09   ` Pedro Alves
  2011-04-01 16:28     ` Pedro Alves
  0 siblings, 1 reply; 4+ messages in thread
From: Pedro Alves @ 2011-04-01 16:09 UTC (permalink / raw)
  To: Keith Seitz; +Cc: gdb-patches

On Friday 01 April 2011 16:53:30, Keith Seitz wrote:
> On 04/01/2011 08:09 AM, Pedro Alves wrote:
> >> # Overloaded methods (all are const -- we try to use the void
> >> # method with and without specifying "const")
> >
> > Why is the non-const variant tried and expected to pass?
> 
> Yes, as you say:
> 
> > Is this trying to be a reminder that GDB could be more forgiving
> > and accept the non-const overload, perhaps?
> 
> I wouldn't go so far as to say that gdb needs to be forgiving. This case 
> is unambiguous, and IMO it is simply a bug/mis-feature. I put those 
> tests there as a reminder that someone needs to figure out how to fix 
> this... But:
> 
> > Can we just drop it, like below?
> 
> Perhaps it would have been better to either XFAIL 

(a KFAIL)

> or remove them altogether and add a bugzilla entry to track this. 

Yeah, I'll do this.

Thanks!

-- 
Pedro Alves


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: FAIL: gdb.cp/cpexprs.exp: list base::overload(void)
  2011-04-01 16:09   ` Pedro Alves
@ 2011-04-01 16:28     ` Pedro Alves
  0 siblings, 0 replies; 4+ messages in thread
From: Pedro Alves @ 2011-04-01 16:28 UTC (permalink / raw)
  To: gdb-patches; +Cc: Keith Seitz

On Friday 01 April 2011 17:09:18, Pedro Alves wrote:
> > or remove them altogether and add a bugzilla entry to track this. 
> 
> Yeah, I'll do this.

This is now PR c++/12630.  I've applied the patch now.  Here it
is again, now with CL entry.

Thanks,

-- 
Pedro Alves

2011-04-01  Pedro Alves  <pedro@codesourcery.com>

	gdb/testsuite/
	* gdb.cp/cpexprs.exp (Overloaded methods): No longer try the
	base::overload(void) method without specifying "const".

---
 gdb/testsuite/gdb.cp/cpexprs.exp |    7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

Index: src/gdb/testsuite/gdb.cp/cpexprs.exp
===================================================================
--- src.orig/gdb/testsuite/gdb.cp/cpexprs.exp	2011-04-01 15:52:15.339770000 +0100
+++ src/gdb/testsuite/gdb.cp/cpexprs.exp	2011-04-01 15:53:18.469770000 +0100
@@ -196,12 +196,7 @@ add {base::~base} \
     - \
     -
 
-# Overloaded methods (all are const -- we try to use the void
-# method with and without specifying "const")
-add {base::overload(void)} \
-    {int (const base * const)} \
-    - \
-    {base::overload(void) const}
+# Overloaded methods (all are const)
 add {base::overload(void) const} \
     {int (const base * const)} \
     - \


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-04-01 16:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-01 15:09 FAIL: gdb.cp/cpexprs.exp: list base::overload(void) Pedro Alves
2011-04-01 15:53 ` Keith Seitz
2011-04-01 16:09   ` Pedro Alves
2011-04-01 16:28     ` Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox