Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] Fix for PR exp/1821
@ 2004-12-05 19:12 Ramana Radhakrishnan
  2004-12-05 19:37 ` Daniel Jacobowitz
  0 siblings, 1 reply; 7+ messages in thread
From: Ramana Radhakrishnan @ 2004-12-05 19:12 UTC (permalink / raw)
  To: gdb-patches; +Cc: cagney, dk

[-- Attachment #1: Type: text/plain, Size: 736 bytes --]

Hi ,

I was looking at PR 1821 today and realized that the problem is because 
cplus_print_value_fields is shared between c-valprint.c and 
cp-valprint.c . fprintf_symbol_filtered is called with language_cplus 
automatically while it should be dependent on the current language .


This patch attempts to use current_language->la_language to pass to 
fprintf_symbol_filtered so that the correct demangler is used. Tested 
with i686-pc-linux-gnu using gcc 3.3.4 (Debian) and no extra regressions.

Ok to commit ?

cheers
Ramana


ChangeLog:
	
2004-12-06  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>

         Fix PR exp/1821
         * cp-valprint.c(cp_print_value_fields): Pass current language to
	fprintf_symbol_filtered.

[-- Attachment #2: gdbpr1821patch --]
[-- Type: text/plain, Size: 2612 bytes --]

Index: cp-valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/cp-valprint.c,v
retrieving revision 1.27
diff -c -3 -p -r1.27 cp-valprint.c
*** cp-valprint.c	12 Nov 2004 21:45:06 -0000	1.27
--- cp-valprint.c	5 Dec 2004 18:23:27 -0000
***************
*** 35,41 ****
  #include "target.h"
  #include "cp-abi.h"
  #include "valprint.h"
! 
  int vtblprint;			/* Controls printing of vtbl's */
  int objectprint;		/* Controls looking up an object's derived type
  				   using what we find in its vtables.  */
--- 35,41 ----
  #include "target.h"
  #include "cp-abi.h"
  #include "valprint.h"
! #include "language.h"
  int vtblprint;			/* Controls printing of vtbl's */
  int objectprint;		/* Controls looking up an object's derived type
  				   using what we find in its vtables.  */
*************** cp_print_value_fields (struct type *type
*** 317,327 ****
  	      if (TYPE_FIELD_STATIC (type, i))
  		fputs_filtered ("static ", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       language_cplus,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      fputs_filtered ("\" \"", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       language_cplus,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      fputs_filtered ("\") \"", stream);
  	    }
--- 317,327 ----
  	      if (TYPE_FIELD_STATIC (type, i))
  		fputs_filtered ("static ", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       current_language->la_language,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      fputs_filtered ("\" \"", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       current_language->la_language,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      fputs_filtered ("\") \"", stream);
  	    }
*************** cp_print_value_fields (struct type *type
*** 332,338 ****
  	      if (TYPE_FIELD_STATIC (type, i))
  		fputs_filtered ("static ", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       language_cplus,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      annotate_field_name_end ();
  	      /* do not print leading '=' in case of anonymous unions */
--- 332,338 ----
  	      if (TYPE_FIELD_STATIC (type, i))
  		fputs_filtered ("static ", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       current_language->la_language,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      annotate_field_name_end ();
  	      /* do not print leading '=' in case of anonymous unions */

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

* Re: [PATCH] Fix for PR exp/1821
  2004-12-05 19:12 [PATCH] Fix for PR exp/1821 Ramana Radhakrishnan
@ 2004-12-05 19:37 ` Daniel Jacobowitz
  2004-12-06  3:51   ` Ramana Radhakrishnan
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Jacobowitz @ 2004-12-05 19:37 UTC (permalink / raw)
  To: Ramana Radhakrishnan; +Cc: gdb-patches, cagney, dk

On Mon, Dec 06, 2004 at 12:16:43AM +0530, Ramana Radhakrishnan wrote:
> Hi ,
> 
> I was looking at PR 1821 today and realized that the problem is because 
> cplus_print_value_fields is shared between c-valprint.c and 
> cp-valprint.c . fprintf_symbol_filtered is called with language_cplus 
> automatically while it should be dependent on the current language .
> 
> 
> This patch attempts to use current_language->la_language to pass to 
> fprintf_symbol_filtered so that the correct demangler is used. Tested 
> with i686-pc-linux-gnu using gcc 3.3.4 (Debian) and no extra regressions.
> 
> Ok to commit ?

Yes, this is OK, with a couple of formatting corrections (see below). 
Do you think you could add a testcase for this problem?

> ChangeLog:
> 	
> 2004-12-06  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
> 
>         Fix PR exp/1821
>         * cp-valprint.c(cp_print_value_fields): Pass current language to
> 	fprintf_symbol_filtered.

Please be careful of tabs and spaces.

> Index: cp-valprint.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/cp-valprint.c,v
> retrieving revision 1.27
> diff -c -3 -p -r1.27 cp-valprint.c
> *** cp-valprint.c	12 Nov 2004 21:45:06 -0000	1.27
> --- cp-valprint.c	5 Dec 2004 18:23:27 -0000
> ***************
> *** 35,41 ****
>   #include "target.h"
>   #include "cp-abi.h"
>   #include "valprint.h"
> ! 
>   int vtblprint;			/* Controls printing of vtbl's */
>   int objectprint;		/* Controls looking up an object's derived type
>   				   using what we find in its vtables.  */
> --- 35,41 ----
>   #include "target.h"
>   #include "cp-abi.h"
>   #include "valprint.h"
> ! #include "language.h"
>   int vtblprint;			/* Controls printing of vtbl's */
>   int objectprint;		/* Controls looking up an object's derived type
>   				   using what we find in its vtables.  */

Please leave a blank line here.

-- 
Daniel Jacobowitz


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

* Re: [PATCH] Fix for PR exp/1821
  2004-12-05 19:37 ` Daniel Jacobowitz
@ 2004-12-06  3:51   ` Ramana Radhakrishnan
  2005-02-10  8:33     ` Daniel Jacobowitz
  0 siblings, 1 reply; 7+ messages in thread
From: Ramana Radhakrishnan @ 2004-12-06  3:51 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: Ramana Radhakrishnan, gdb-patches, cagney

[-- Attachment #1: Type: text/plain, Size: 628 bytes --]

Hi Daniel,

>
> Yes, this is OK, with a couple of formatting corrections (see below).
> Do you think you could add a testcase for this problem?


Corrected the formatting errors and added a testcase for this.
gdb.base/gdb1821.c / gdb1821.exp .

Ok to commit ?

regards
Ramana


ChangeLog:

2004-12-06  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>

	PR exp/1821
	* cp_valprint.c(cp_print_value_fields): Include language.h .
	Pass current_language to fprintf_symbol_filtered
	* testsuite/gdb.base/gdb1821.c: New test file
	* testsuite/gdb.base/gdb1821.exp: New test file



----
Ramana Radhakrishnan
Codito Technologies

[-- Attachment #2: gdb1821patch --]
[-- Type: application/octet-stream, Size: 4054 bytes --]

--- /dev/null	2003-09-15 19:10:47.000000000 +0530
+++ testsuite/gdb.base/gdb1821.exp	2004-12-06 09:07:46.925182104 +0530
@@ -0,0 +1,49 @@
+# Copyright 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+
+# Tests for PR gdb/1821.
+# 2004-12-06  Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
+
+# This file is part of the gdb testsuite.
+
+if $tracelevel then {
+        strace $tracelevel
+        }
+
+#
+# test running programs
+#
+set prms_id 0
+set bug_id 0
+
+set testfile "gdb1821"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+}
+
+gdb_exit
+gdb_start
+gdb_load ${binfile}
+
+if ![runto main] then {
+    perror "couldn't run to breakpoint"
+    continue
+} 
+gdb_test "print /x bar" "{x__0 = 0x0, y__0 = 0x0, z__1 = 0x0}" 
+
--- /dev/null	2003-09-15 19:10:47.000000000 +0530
+++ testsuite/gdb.base/gdb1821.c	2004-12-06 09:08:45.644255448 +0530
@@ -0,0 +1,25 @@
+/* Test printing of structure member names in gdb. PR exp/1821
+
+   Copyright 2004, Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+struct foo { double x__0, y__0, z__1; } bar;
+
+
+int main(void) { return 0; }
--- cp-valprint.c.~1.27.~	2004-12-06 02:26:31.000000000 +0530
+++ cp-valprint.c	2004-12-06 08:39:29.487231896 +0530
@@ -35,6 +35,7 @@
 #include "target.h"
 #include "cp-abi.h"
 #include "valprint.h"
+#include "language.h"
 
 int vtblprint;			/* Controls printing of vtbl's */
 int objectprint;		/* Controls looking up an object's derived type
@@ -317,11 +318,11 @@
 	      if (TYPE_FIELD_STATIC (type, i))
 		fputs_filtered ("static ", stream);
 	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
-				       language_cplus,
+				       current_language->la_language,
 				       DMGL_PARAMS | DMGL_ANSI);
 	      fputs_filtered ("\" \"", stream);
 	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
-				       language_cplus,
+				       current_language->la_language,
 				       DMGL_PARAMS | DMGL_ANSI);
 	      fputs_filtered ("\") \"", stream);
 	    }
@@ -332,7 +333,7 @@
 	      if (TYPE_FIELD_STATIC (type, i))
 		fputs_filtered ("static ", stream);
 	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
-				       language_cplus,
+				       current_language->la_language ,
 				       DMGL_PARAMS | DMGL_ANSI);
 	      annotate_field_name_end ();
 	      /* do not print leading '=' in case of anonymous unions */

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

* Re: [PATCH] Fix for PR exp/1821
  2004-12-06  3:51   ` Ramana Radhakrishnan
@ 2005-02-10  8:33     ` Daniel Jacobowitz
  2005-02-10 10:32       ` Ramana Radhakrishnan
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Jacobowitz @ 2005-02-10  8:33 UTC (permalink / raw)
  To: Ramana Radhakrishnan; +Cc: gdb-patches

On Mon, Dec 06, 2004 at 09:33:48AM +0530, Ramana Radhakrishnan wrote:
> Hi Daniel,
> 
> >
> > Yes, this is OK, with a couple of formatting corrections (see below).
> > Do you think you could add a testcase for this problem?
> 
> 
> Corrected the formatting errors and added a testcase for this.
> gdb.base/gdb1821.c / gdb1821.exp .
> 
> Ok to commit ?

Sorry about the slow review.  There are still a number of problems.

--- /dev/null	2003-09-15 19:10:47.000000000 +0530
+++ testsuite/gdb.base/gdb1821.exp	2004-12-06 09:07:46.925182104 +0530
@@ -0,0 +1,49 @@
+# Copyright 2003 Free Software Foundation, Inc.

Copyright year is wrong.

+if $tracelevel then {
+        strace $tracelevel
+        }
+
+#
+# test running programs
+#
+set prms_id 0
+set bug_id 0

These can be deleted.

+set testfile "gdb1821"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+}

Please don't use gdb_suppress_entire_file.  Just use "return -1" here.

+if ![runto main] then {

Use runto_main, not runto main.

--- /dev/null	2003-09-15 19:10:47.000000000 +0530
+++ testsuite/gdb.base/gdb1821.c	2004-12-06 09:08:45.644255448 +0530
@@ -0,0 +1,25 @@
+/* Test printing of structure member names in gdb. PR exp/1821
+
+   Copyright 2004, Free Software Foundation, Inc.

Copyright year needs to be 2005 now.  My fault...

--- cp-valprint.c.~1.27.~	2004-12-06 02:26:31.000000000 +0530
+++ cp-valprint.c	2004-12-06 08:39:29.487231896 +0530
@@ -35,6 +35,7 @@
 #include "target.h"
 #include "cp-abi.h"
 #include "valprint.h"
+#include "language.h"
 
 int vtblprint;			/* Controls printing of vtbl's */
 int objectprint;		/* Controls looking up an object's derived type

You added an include, so you need to update Makefile.in.

The patch itself still looks fine, so if you could just revise the
dependencies and testcase and repost, I'll try to be prompt.  Do you
have write access?

-- 
Daniel Jacobowitz
CodeSourcery, LLC


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

* Re: [PATCH] Fix for PR exp/1821
  2005-02-10  8:33     ` Daniel Jacobowitz
@ 2005-02-10 10:32       ` Ramana Radhakrishnan
  2005-02-10 11:02         ` [PATCH] resubmit " Ramana Radhakrishnan
  0 siblings, 1 reply; 7+ messages in thread
From: Ramana Radhakrishnan @ 2005-02-10 10:32 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 497 bytes --]

Hi Daniel,


> Sorry about the slow review.  There are still a number of problems.

Thanks for the review. The attached patch solves the issues that you 
pointed out. Ok to commit ?


> The patch itself still looks fine, so if you could just revise the
> dependencies and testcase and repost, I'll try to be prompt.  Do you
> have write access?

I don't have write access yet. So you would have to commit it .

regards
Ramana


-- 
Ramana Radhakrishnan
GNU Tools
codito ergo sum (www.codito.com)


[-- Attachment #2: gdb1821revised --]
[-- Type: text/plain, Size: 4561 bytes --]

--- /dev/null	2005-02-10 14:35:17.859850120 +0530
+++ testsuite/gdb.base/gdb1821.exp	2005-02-10 09:21:37.213117432 +0530
@@ -0,0 +1,43 @@
+# Copyright 2005 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+
+# Tests for PR gdb/1821.
+# 2004-12-06  Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
+
+# This file is part of the gdb testsuite.
+
+#
+# test running programs
+#
+
+set testfile "gdb1821"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+     return -1
+}
+
+gdb_exit
+gdb_start
+gdb_load ${binfile}
+
+if ![runto_main] then {
+    perror "couldn't run to breakpoint"
+    continue
+} 
+gdb_test "print /x bar" "{x__0 = 0x0, y__0 = 0x0, z__1 = 0x0}" 
+
--- /dev/null	2005-02-10 14:35:17.859850120 +0530
+++ testsuite/gdb.base/gdb1821.c	2005-02-10 09:22:30.116074960 +0530
@@ -0,0 +1,25 @@
+/* Test printing of structure member names in gdb. PR exp/1821
+
+   Copyright 2005, Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+struct foo { double x__0, y__0, z__1; } bar;
+
+
+int main(void) { return 0; }
Index: cp-valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/cp-valprint.c,v
retrieving revision 1.36
diff -a -u -p -r1.36 cp-valprint.c
--- cp-valprint.c	9 Feb 2005 00:04:28 -0000	1.36
+++ cp-valprint.c	10 Feb 2005 03:56:32 -0000
@@ -36,6 +36,7 @@
 #include "cp-abi.h"
 #include "valprint.h"
 #include "cp-support.h"
+#include "language.h"
 
 int vtblprint;			/* Controls printing of vtbl's */
 int objectprint;		/* Controls looking up an object's derived type
@@ -319,11 +320,11 @@ cp_print_value_fields (struct type *type
 	      if (TYPE_FIELD_STATIC (type, i))
 		fputs_filtered ("static ", stream);
 	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
-				       language_cplus,
+				       current_language->la_language,
 				       DMGL_PARAMS | DMGL_ANSI);
 	      fputs_filtered ("\" \"", stream);
 	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
-				       language_cplus,
+				       current_language->la_language,
 				       DMGL_PARAMS | DMGL_ANSI);
 	      fputs_filtered ("\") \"", stream);
 	    }
Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.697
diff -a -u -p -r1.697 Makefile.in
--- Makefile.in	9 Feb 2005 00:04:27 -0000	1.697
+++ Makefile.in	10 Feb 2005 03:57:34 -0000
@@ -1823,7 +1823,7 @@ cpu32bug-rom.o: cpu32bug-rom.c $(defs_h)
 cp-valprint.o: cp-valprint.c $(defs_h) $(gdb_obstack_h) $(symtab_h) \
 	$(gdbtypes_h) $(expression_h) $(value_h) $(command_h) $(gdbcmd_h) \
 	$(demangle_h) $(annotate_h) $(gdb_string_h) $(c_lang_h) $(target_h) \
-	$(cp_abi_h) $(valprint_h) $(cp_support_h)
+	$(cp_abi_h) $(valprint_h) $(cp_support_h) $(language_h)
 cris-tdep.o: cris-tdep.c $(defs_h) $(frame_h) $(frame_unwind_h) \
 	$(frame_base_h) $(trad_frame_h) $(dwarf2_frame_h) $(symtab_h) \
 	$(inferior_h) $(gdbtypes_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) \

[-- Attachment #3: ChangeLoggdb1821 --]
[-- Type: text/plain, Size: 379 bytes --]

2005-02-10  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>

        PR exp/1821
        * cp-valprint.c(cp_print_value_fields): Include language.h .
	Pass current_language to fprintf_symbol_filtered
        * testsuite/gdb.base/gdb1821.c: New test file
        * testsuite/gdb.base/gdb1821.exp: New test file
        * Makefile.in: Update dependencies for cp-valprint.c

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

* [PATCH] resubmit PR exp/1821
  2005-02-10 10:32       ` Ramana Radhakrishnan
@ 2005-02-10 11:02         ` Ramana Radhakrishnan
  2005-02-10 20:53           ` Daniel Jacobowitz
  0 siblings, 1 reply; 7+ messages in thread
From: Ramana Radhakrishnan @ 2005-02-10 11:02 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 300 bytes --]

Hi Daniel,
	
Apologies, I inadvertently attached the wrong patch in my earlier mail. 
There was an extra occurence of language_cplus which also had to be 
corrected for the patch to work right.  Thanks in advance.

regards
Ramana

-- 
Ramana Radhakrishnan
GNU Tools
codito ergo sum (www.codito.com)


[-- Attachment #2: ChangeLoggdb1821 --]
[-- Type: text/plain, Size: 379 bytes --]

2005-02-10  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>

        PR exp/1821
        * cp-valprint.c(cp_print_value_fields): Include language.h .
	Pass current_language to fprintf_symbol_filtered
        * testsuite/gdb.base/gdb1821.c: New test file
        * testsuite/gdb.base/gdb1821.exp: New test file
        * Makefile.in: Update dependencies for cp-valprint.c

[-- Attachment #3: gdb1821final --]
[-- Type: text/plain, Size: 5851 bytes --]

--- /dev/null	2004-06-30 21:59:41.000000000 +0530
+++ testsuite/gdb.base/gdb1821.c	2005-02-10 13:50:52.000000000 +0530
@@ -0,0 +1,25 @@
+/* Test printing of structure member names in gdb. PR exp/1821
+
+   Copyright 2005, Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+struct foo { double x__0, y__0, z__1; } bar;
+
+
+int main(void) { return 0; }
--- /dev/null	2004-06-30 21:59:41.000000000 +0530
+++ testsuite/gdb.base/gdb1821.c	2005-02-10 13:50:52.000000000 +0530
@@ -0,0 +1,25 @@
+/* Test printing of structure member names in gdb. PR exp/1821
+
+   Copyright 2005, Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+struct foo { double x__0, y__0, z__1; } bar;
+
+
+int main(void) { return 0; }
Index: cp-valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/cp-valprint.c,v
retrieving revision 1.36
diff -c -3 -p -r1.36 cp-valprint.c
*** cp-valprint.c	9 Feb 2005 00:04:28 -0000	1.36
--- cp-valprint.c	10 Feb 2005 09:47:33 -0000
***************
*** 36,41 ****
--- 36,42 ----
  #include "cp-abi.h"
  #include "valprint.h"
  #include "cp-support.h"
+ #include "language.h"
  
  int vtblprint;			/* Controls printing of vtbl's */
  int objectprint;		/* Controls looking up an object's derived type
*************** cp_print_value_fields (struct type *type
*** 319,329 ****
  	      if (TYPE_FIELD_STATIC (type, i))
  		fputs_filtered ("static ", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       language_cplus,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      fputs_filtered ("\" \"", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       language_cplus,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      fputs_filtered ("\") \"", stream);
  	    }
--- 320,330 ----
  	      if (TYPE_FIELD_STATIC (type, i))
  		fputs_filtered ("static ", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       current_language->la_language,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      fputs_filtered ("\" \"", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       current_language->la_language,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      fputs_filtered ("\") \"", stream);
  	    }
*************** cp_print_value_fields (struct type *type
*** 334,340 ****
  	      if (TYPE_FIELD_STATIC (type, i))
  		fputs_filtered ("static ", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       language_cplus,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      annotate_field_name_end ();
  	      /* do not print leading '=' in case of anonymous unions */
--- 335,341 ----
  	      if (TYPE_FIELD_STATIC (type, i))
  		fputs_filtered ("static ", stream);
  	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
! 				       current_language->la_language,
  				       DMGL_PARAMS | DMGL_ANSI);
  	      annotate_field_name_end ();
  	      /* do not print leading '=' in case of anonymous unions */
Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.697
diff -c -3 -p -r1.697 Makefile.in
*** Makefile.in	9 Feb 2005 00:04:27 -0000	1.697
--- Makefile.in	10 Feb 2005 09:47:58 -0000
*************** cpu32bug-rom.o: cpu32bug-rom.c $(defs_h)
*** 1823,1829 ****
  cp-valprint.o: cp-valprint.c $(defs_h) $(gdb_obstack_h) $(symtab_h) \
  	$(gdbtypes_h) $(expression_h) $(value_h) $(command_h) $(gdbcmd_h) \
  	$(demangle_h) $(annotate_h) $(gdb_string_h) $(c_lang_h) $(target_h) \
! 	$(cp_abi_h) $(valprint_h) $(cp_support_h)
  cris-tdep.o: cris-tdep.c $(defs_h) $(frame_h) $(frame_unwind_h) \
  	$(frame_base_h) $(trad_frame_h) $(dwarf2_frame_h) $(symtab_h) \
  	$(inferior_h) $(gdbtypes_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) \
--- 1823,1829 ----
  cp-valprint.o: cp-valprint.c $(defs_h) $(gdb_obstack_h) $(symtab_h) \
  	$(gdbtypes_h) $(expression_h) $(value_h) $(command_h) $(gdbcmd_h) \
  	$(demangle_h) $(annotate_h) $(gdb_string_h) $(c_lang_h) $(target_h) \
! 	$(cp_abi_h) $(valprint_h) $(cp_support_h) $(language_h)
  cris-tdep.o: cris-tdep.c $(defs_h) $(frame_h) $(frame_unwind_h) \
  	$(frame_base_h) $(trad_frame_h) $(dwarf2_frame_h) $(symtab_h) \
  	$(inferior_h) $(gdbtypes_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) \

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

* Re: [PATCH] resubmit PR exp/1821
  2005-02-10 11:02         ` [PATCH] resubmit " Ramana Radhakrishnan
@ 2005-02-10 20:53           ` Daniel Jacobowitz
  0 siblings, 0 replies; 7+ messages in thread
From: Daniel Jacobowitz @ 2005-02-10 20:53 UTC (permalink / raw)
  To: Ramana Radhakrishnan; +Cc: gdb-patches

On Thu, Feb 10, 2005 at 03:25:26PM +0530, Ramana Radhakrishnan wrote:
> Hi Daniel,
> 	
> Apologies, I inadvertently attached the wrong patch in my earlier mail. 
> There was an extra occurence of language_cplus which also had to be 
> corrected for the patch to work right.  Thanks in advance.

The corrected patch lost the .exp file.  Also, your changelog
formatting was wrong.  I've fixed these for you and checked it in;
here's what I committed.


-- 
Daniel Jacobowitz
CodeSourcery, LLC

2005-02-10  Daniel Jacobowitz  <dan@debian.org>

	From Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>:
	PR exp/1821
	* cp-valprint.c: Include "language.h".
	(cp_print_value_fields): Pass the current language to
	fprintf_symbol_filtered.
	* Makefile.in (cp-valprint.o): Update dependencies.

2005-02-10  Daniel Jacobowitz  <dan@debian.org>

	From Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>:
	PR exp/1821
	* gdb.base/gdb1821.c: New test file.
	* gdb.base/gdb1821.exp: New test file.

Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.697
diff -u -p -r1.697 Makefile.in
--- Makefile.in	9 Feb 2005 00:04:27 -0000	1.697
+++ Makefile.in	10 Feb 2005 17:53:37 -0000
@@ -1823,7 +1823,7 @@ cpu32bug-rom.o: cpu32bug-rom.c $(defs_h)
 cp-valprint.o: cp-valprint.c $(defs_h) $(gdb_obstack_h) $(symtab_h) \
 	$(gdbtypes_h) $(expression_h) $(value_h) $(command_h) $(gdbcmd_h) \
 	$(demangle_h) $(annotate_h) $(gdb_string_h) $(c_lang_h) $(target_h) \
-	$(cp_abi_h) $(valprint_h) $(cp_support_h)
+	$(cp_abi_h) $(valprint_h) $(cp_support_h) $(language_h)
 cris-tdep.o: cris-tdep.c $(defs_h) $(frame_h) $(frame_unwind_h) \
 	$(frame_base_h) $(trad_frame_h) $(dwarf2_frame_h) $(symtab_h) \
 	$(inferior_h) $(gdbtypes_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) \
Index: cp-valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/cp-valprint.c,v
retrieving revision 1.36
diff -u -p -r1.36 cp-valprint.c
--- cp-valprint.c	9 Feb 2005 00:04:28 -0000	1.36
+++ cp-valprint.c	10 Feb 2005 17:53:37 -0000
@@ -36,6 +36,7 @@
 #include "cp-abi.h"
 #include "valprint.h"
 #include "cp-support.h"
+#include "language.h"
 
 int vtblprint;			/* Controls printing of vtbl's */
 int objectprint;		/* Controls looking up an object's derived type
@@ -319,11 +320,11 @@ cp_print_value_fields (struct type *type
 	      if (TYPE_FIELD_STATIC (type, i))
 		fputs_filtered ("static ", stream);
 	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
-				       language_cplus,
+				       current_language->la_language,
 				       DMGL_PARAMS | DMGL_ANSI);
 	      fputs_filtered ("\" \"", stream);
 	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
-				       language_cplus,
+				       current_language->la_language,
 				       DMGL_PARAMS | DMGL_ANSI);
 	      fputs_filtered ("\") \"", stream);
 	    }
@@ -334,7 +335,7 @@ cp_print_value_fields (struct type *type
 	      if (TYPE_FIELD_STATIC (type, i))
 		fputs_filtered ("static ", stream);
 	      fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
-				       language_cplus,
+				       current_language->la_language,
 				       DMGL_PARAMS | DMGL_ANSI);
 	      annotate_field_name_end ();
 	      /* do not print leading '=' in case of anonymous unions */
Index: testsuite/gdb.base/gdb1821.c
===================================================================
RCS file: testsuite/gdb.base/gdb1821.c
diff -N testsuite/gdb.base/gdb1821.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ testsuite/gdb.base/gdb1821.c	10 Feb 2005 17:53:38 -0000
@@ -0,0 +1,25 @@
+/* Test printing of structure member names in gdb. PR exp/1821
+
+   Copyright 2005, Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+struct foo { double x__0, y__0, z__1; } bar;
+
+
+int main(void) { return 0; }
Index: testsuite/gdb.base/gdb1821.exp
===================================================================
RCS file: testsuite/gdb.base/gdb1821.exp
diff -N testsuite/gdb.base/gdb1821.exp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ testsuite/gdb.base/gdb1821.exp	10 Feb 2005 17:53:38 -0000
@@ -0,0 +1,43 @@
+# Copyright 2005 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+
+# Tests for PR gdb/1821.
+# 2004-12-06  Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
+
+# This file is part of the gdb testsuite.
+
+#
+# test running programs
+#
+
+set testfile "gdb1821"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+     return -1
+}
+
+gdb_exit
+gdb_start
+gdb_load ${binfile}
+
+if ![runto_main] then {
+    perror "couldn't run to breakpoint"
+    continue
+} 
+gdb_test "print /x bar" "{x__0 = 0x0, y__0 = 0x0, z__1 = 0x0}" 
+


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

end of thread, other threads:[~2005-02-10 18:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-05 19:12 [PATCH] Fix for PR exp/1821 Ramana Radhakrishnan
2004-12-05 19:37 ` Daniel Jacobowitz
2004-12-06  3:51   ` Ramana Radhakrishnan
2005-02-10  8:33     ` Daniel Jacobowitz
2005-02-10 10:32       ` Ramana Radhakrishnan
2005-02-10 11:02         ` [PATCH] resubmit " Ramana Radhakrishnan
2005-02-10 20:53           ` Daniel Jacobowitz

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