Bug 13483 - gdb not taking 0 for pointer and boolean values
Summary: gdb not taking 0 for pointer and boolean values
Status: RESOLVED FIXED
Alias: None
Product: gdb
Classification: Unclassified
Component: gdb (show other bugs)
Version: unknown
: P2 normal
Target Milestone: 7.6
Assignee: Keith Seitz
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-07 19:35 UTC by Diego Novillo
Modified: 2012-09-12 18:43 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Diego Novillo 2011-12-07 19:35:58 UTC
I'm debugging cc1plus from GCC trunk (as of 2-3 weeks ago).  I'm trying to make an inferior call to the function libcpp/line-map.c:linemap_dump:

1160    void
1161    linemap_dump (FILE *stream, struct line_maps *set, unsigned ix, bool is_macro)


(gdb) call linemap_dump(0,line_table,ix,0)
Cannot resolve function linemap_dump to any overloaded instance

But if I use typecasts, it works:

(gdb) call linemap_dump((FILE *)0,line_table,ix,(bool)0)
Map #0 [0x7ffff7fc2000] - LOC: 2 - REASON: LC_ENTER - SYSP: no
File: /usr/include/bits/posix1_lim.h:1
Included from: [-1] None

I suppose this is intended behaviour, but it is rather irritating.  There is exactly one linemap_dump function, and I would expect 0 to be trivially convertible to those types:

(gdb) l linemap_dum<TAB>
linemap_dump(_IO_FILE*, line_maps*, unsigned int, bool)
linemap_dump_location(line_maps*, unsigned int, _IO_FILE*)


Thanks.  Diego.
Comment 1 Keith Seitz 2011-12-07 20:14:13 UTC
What version of gdb? I checked in a patch for 13225 which should at least allow the pointer to work without a cast. I suspect "bool" needs similar treatment. Does just casting the bool work?
Comment 2 Diego Novillo 2011-12-07 20:18:45 UTC
On 12/07/11 15:14, keiths at redhat dot com wrote:
> http://sourceware.org/bugzilla/show_bug.cgi?id=13483
>
> Keith Seitz<keiths at redhat dot com>  changed:
>
>             What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                   CC|                            |keiths at redhat dot com
>
> --- Comment #1 from Keith Seitz<keiths at redhat dot com>  2011-12-07 20:14:13 UTC ---
> What version of gdb? I checked in a patch for 13225 which should at least allow
> the pointer to work without a cast. I suspect "bool" needs similar treatment.
> Does just casting the bool work?


Sorry, forgot to include that.  We are using a slightly modified version 
of 7.3.1:

$ gdb --version
GNU gdb (GDB) 7.3.1

If I cast the bool argument, it works fine, yes.



Diego.
Comment 3 Sourceware Commits 2012-09-10 17:13:01 UTC
CVSROOT:	/cvs/src
Module name:	src
Changes by:	kseitz@sourceware.org	2012-09-10 17:12:53

Modified files:
	gdb            : ChangeLog gdbtypes.h gdbtypes.c 
	gdb/testsuite  : ChangeLog 
	gdb/testsuite/gdb.cp: converts.cc converts.exp 

Log message:
	PR gdb/13483
	* gdbtypes.h (BOOL_PTR_CONVERSION_BADNESS): Rename to ...
	(BOOL_CONVERSION_BADNESS): ... this.
	* gdbtypes.c (BOOL_PTR_CONVERSION_BADNESS): Likewise.
	(rank_one_type): Allow all boolean conversions
	permitted by the standard.
	
	* gdb.cp/converts.cc (A::A): Add ctor.
	(A::member_): Add member.
	(enum my_enum): New enumeration.
	(main): Add calls to foo1_7 with various
	permitted arguments.
	* gdb.cp/converts.exp: Add tests for boolean
	conversions permitted by the standard.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.14645&r2=1.14646
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/gdbtypes.h.diff?cvsroot=src&r1=1.171&r2=1.172
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/gdbtypes.c.diff?cvsroot=src&r1=1.241&r2=1.242
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/ChangeLog.diff?cvsroot=src&r1=1.3362&r2=1.3363
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/converts.cc.diff?cvsroot=src&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.cp/converts.exp.diff?cvsroot=src&r1=1.7&r2=1.8
Comment 4 Keith Seitz 2012-09-12 18:43:59 UTC
I've committed patches for this. Please let me know if there are any further issues.