* 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