public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/12936] New: function lookup class should not depend on its linkage name
@ 2011-06-27 15:03 jan.kratochvil at redhat dot com
  2011-11-18 19:45 ` [Bug c++/12936] " tromey at redhat dot com
  0 siblings, 1 reply; 2+ messages in thread
From: jan.kratochvil at redhat dot com @ 2011-06-27 15:03 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=12936

           Summary: function lookup class should not depend on its linkage
                    name
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned@sourceware.org
        ReportedBy: jan.kratochvil@redhat.com


struct S {
  static void m (int x) {}
};
template<void (*T) (int)>
struct K {
  void f () { T (0); }
};
int main () {
  K<&S::m> k;
  k.f ();
}
------------------------------------------------------------------------------
K<&S::m>::f (this=0x7fffffffdc9f) at tmplmembernot.C:6
6      void f () { T (0); }
(gdb) p T
No symbol "T" in current context.
(gdb) ptype T
No symbol "T" in current context.

expected:
(gdb) ptype T
type = void (int)
 - `print T' is another problem - GDB PR c++/12933

cp_lookup_symbol_imports_or_template uses namespaces from
`SYMBOL_NATURAL_NAME (function)' which may come demangled from
DW_AT_linkage_name and it may not match parent
DW_TAG_structure_type->DW_AT_name such as due to:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49546

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


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

* [Bug c++/12936] function lookup class should not depend on its linkage name
  2011-06-27 15:03 [Bug c++/12936] New: function lookup class should not depend on its linkage name jan.kratochvil at redhat dot com
@ 2011-11-18 19:45 ` tromey at redhat dot com
  0 siblings, 0 replies; 2+ messages in thread
From: tromey at redhat dot com @ 2011-11-18 19:45 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=12936

Tom Tromey <tromey at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at redhat dot com

--- Comment #1 from Tom Tromey <tromey at redhat dot com> 2011-11-18 19:45:18 UTC ---
It seems that the class here has two different names.
The function's canonical name is K<&S::m>::func().
But, the class is actually named K<S::m>.

(gdb) ptype K<&S::m>
No symbol "K<&S::m>" in current context.
(gdb) ptype K<S::m>
type = struct K<S::m> {
  public:
    void f(void);
}

Template parameter lookup works by peeling off the class name
(which is in itself bogus).

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


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

end of thread, other threads:[~2011-11-18 19:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-27 15:03 [Bug c++/12936] New: function lookup class should not depend on its linkage name jan.kratochvil at redhat dot com
2011-11-18 19:45 ` [Bug c++/12936] " tromey at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).