From: Sergio Durigan Junior <sergiodj@redhat.com>
To: Tom Tromey <tromey@redhat.com>
Cc: GDB Patches <gdb-patches@sourceware.org>,
Keith Seitz <keiths@redhat.com>
Subject: Re: [PATCH] Fix for PR c++/15203 and PR c++/15210
Date: Thu, 14 Mar 2013 11:16:00 -0000 [thread overview]
Message-ID: <m3obemgrkl.fsf@redhat.com> (raw)
In-Reply-To: <87wqtb9ht6.fsf@fleche.redhat.com> (Tom Tromey's message of "Wed, 13 Mar 2013 14:16:21 -0600")
On Wednesday, March 13 2013, Tom Tromey wrote:
> Sergio> + else if (sym->flags & (BSF_GLOBAL | BSF_LOCAL | BSF_WEAK | BSF_GNU_UNIQUE))
>
> I think this line is too long.
>
> Sergio> +# Regression test for PR c++/15203 and PR c++/15210
> Sergio> +gdb_test "print 'gnu_obj_1::method()::sintvar'" "\\$\[0-9\]+ = 4" \
> Sergio> + "simple object, static const int, accessing via 'class::method::variable"
>
> I think the second line should only be indented 4 spaces.
>
> Ok with those changes.
Thanks, the patch below is what I have actually committed.
http://sourceware.org/ml/gdb-cvs/2013-03/msg00130.html
--
Sergio
Index: gdb/ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.15271
diff -u -r1.15271 ChangeLog
--- gdb/ChangeLog 14 Mar 2013 09:08:55 -0000 1.15271
+++ gdb/ChangeLog 14 Mar 2013 11:09:26 -0000
@@ -1,3 +1,13 @@
+2013-03-14 Keith Seitz <keiths@redhat.com>
+ Alan Matsuoka <alanm@redhat.com>
+
+ PR c++/15203
+ PR c++/15210
+ * cp-namespace.c (cp_lookup_nested_symbol): Handle TYPE_CODE_FUNC and
+ TYPE_CODE_METHOD.
+ * elfread.c (elf_symtab_read): Handle BSF_GNU_UNIQUE for certain
+ symbols.
+
2013-03-14 Yao Qi <yao@codesourcery.com>
* tracepoint.c (tfile_write_status): Write 'stop_desc' of trace
Index: gdb/cp-namespace.c
===================================================================
RCS file: /cvs/src/src/gdb/cp-namespace.c,v
retrieving revision 1.65
diff -u -r1.65 cp-namespace.c
--- gdb/cp-namespace.c 31 Jan 2013 18:37:37 -0000 1.65
+++ gdb/cp-namespace.c 14 Mar 2013 11:09:26 -0000
@@ -812,6 +812,11 @@
base classes. */
return find_symbol_in_baseclass (parent_type, nested_name, block);
}
+
+ case TYPE_CODE_FUNC:
+ case TYPE_CODE_METHOD:
+ return NULL;
+
default:
internal_error (__FILE__, __LINE__,
_("cp_lookup_nested_symbol called "
Index: gdb/elfread.c
===================================================================
RCS file: /cvs/src/src/gdb/elfread.c,v
retrieving revision 1.148
diff -u -r1.148 elfread.c
--- gdb/elfread.c 6 Mar 2013 21:20:02 -0000 1.148
+++ gdb/elfread.c 14 Mar 2013 11:09:27 -0000
@@ -357,7 +357,8 @@
}
else if (sym->flags & BSF_SECTION_SYM)
continue;
- else if (sym->flags & (BSF_GLOBAL | BSF_LOCAL | BSF_WEAK))
+ else if (sym->flags & (BSF_GLOBAL | BSF_LOCAL | BSF_WEAK
+ | BSF_GNU_UNIQUE))
{
struct minimal_symbol *msym;
@@ -413,7 +414,7 @@
}
else if (sym->section->flags & SEC_CODE)
{
- if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
+ if (sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE))
{
if (sym->flags & BSF_GNU_INDIRECT_FUNCTION)
ms_type = mst_text_gnu_ifunc;
@@ -443,7 +444,7 @@
}
else if (sym->section->flags & SEC_ALLOC)
{
- if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
+ if (sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE))
{
if (sym->section->flags & SEC_LOAD)
{
Index: gdb/testsuite/ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/ChangeLog,v
retrieving revision 1.3583
diff -u -r1.3583 ChangeLog
--- gdb/testsuite/ChangeLog 14 Mar 2013 09:12:20 -0000 1.3583
+++ gdb/testsuite/ChangeLog 14 Mar 2013 11:09:29 -0000
@@ -1,3 +1,11 @@
+2013-03-14 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ PR c++/15203
+ PR c++/15210
+ * gdb.cp/m-static.cc (keepalive_int): New function.
+ (gnu_obj_1::method): New variable `sintvar', call `keepalive_int'.
+ * gdb.cp/m-static.exp: New test for `sintvar'.
+
2013-03-14 Yao Qi <yao@codesourcery.com>
* gdb.trace/tstatus.exp (run_trace_experiment): Save the output
Index: gdb/testsuite/gdb.cp/m-static.cc
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.cp/m-static.cc,v
retrieving revision 1.6
diff -u -r1.6 m-static.cc
--- gdb/testsuite/gdb.cp/m-static.cc 12 Feb 2013 20:27:36 -0000 1.6
+++ gdb/testsuite/gdb.cp/m-static.cc 14 Mar 2013 11:09:29 -0000
@@ -3,6 +3,7 @@
enum region { oriental, egyptian, greek, etruscan, roman };
void keepalive(bool *var) { }
+void keepalive_int (int *var) { }
// Test one.
class gnu_obj_1
@@ -21,8 +22,11 @@
long method ()
{
+ static int sintvar = 4;
static bool svar = true;
+
keepalive (&svar);
+ keepalive_int (&sintvar);
return key2;
}
};
Index: gdb/testsuite/gdb.cp/m-static.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.cp/m-static.exp,v
retrieving revision 1.21
diff -u -r1.21 m-static.exp
--- gdb/testsuite/gdb.cp/m-static.exp 12 Feb 2013 20:27:36 -0000 1.21
+++ gdb/testsuite/gdb.cp/m-static.exp 14 Mar 2013 11:09:29 -0000
@@ -52,6 +52,11 @@
# One.
+# simple object, static const int, accessing via 'class::method::variable'
+# Regression test for PR c++/15203 and PR c++/15210
+gdb_test "print 'gnu_obj_1::method()::sintvar'" "\\$\[0-9\]+ = 4" \
+ "simple object, static const int, accessing via 'class::method::variable"
+
# simple object, static const bool
gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, static const bool"
next prev parent reply other threads:[~2013-03-14 11:16 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-09 5:51 Sergio Durigan Junior
2013-03-13 3:34 ` Sergio Durigan Junior
2013-03-13 20:16 ` Tom Tromey
2013-03-14 11:16 ` Sergio Durigan Junior [this message]
2013-03-14 11:55 ` Sergio Durigan Junior
2013-03-14 14:55 ` Tom Tromey
2013-03-19 14:44 ` Sergio Durigan Junior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3obemgrkl.fsf@redhat.com \
--to=sergiodj@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=keiths@redhat.com \
--cc=tromey@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox