public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/12213] New: operator() does not work
@ 2010-11-12 21:23 tromey at redhat dot com
  2013-10-31 19:30 ` [Bug c++/12213] " tromey at redhat dot com
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: tromey at redhat dot com @ 2010-11-12 21:23 UTC (permalink / raw)
  To: gdb-prs

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

           Summary: operator() does not work
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned@sourceware.org
        ReportedBy: tromey@redhat.com


C++ operator() overloading does not work in gdb.
Try this program:

struct S {
  int operator() (int x) { return x + 5; }
};

int main () {
  S s;

  return s(23);
}


When I try "print s(23)", I get:

(gdb) p s(23)
Invalid data type for function to be called.

-- 
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] 5+ messages in thread

* [Bug c++/12213] operator() does not work
  2010-11-12 21:23 [Bug c++/12213] New: operator() does not work tromey at redhat dot com
@ 2013-10-31 19:30 ` tromey at redhat dot com
  2023-12-28 11:48 ` ssbssa at sourceware dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: tromey at redhat dot com @ 2013-10-31 19:30 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=12213

Tom Tromey <tromey at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |16106

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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

* [Bug c++/12213] operator() does not work
  2010-11-12 21:23 [Bug c++/12213] New: operator() does not work tromey at redhat dot com
  2013-10-31 19:30 ` [Bug c++/12213] " tromey at redhat dot com
@ 2023-12-28 11:48 ` ssbssa at sourceware dot org
  2024-06-12 13:26 ` cvs-commit at gcc dot gnu.org
  2024-06-12 13:28 ` ssbssa at sourceware dot org
  3 siblings, 0 replies; 5+ messages in thread
From: ssbssa at sourceware dot org @ 2023-12-28 11:48 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=12213

Hannes Domani <ssbssa at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ssbssa at sourceware dot org

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug c++/12213] operator() does not work
  2010-11-12 21:23 [Bug c++/12213] New: operator() does not work tromey at redhat dot com
  2013-10-31 19:30 ` [Bug c++/12213] " tromey at redhat dot com
  2023-12-28 11:48 ` ssbssa at sourceware dot org
@ 2024-06-12 13:26 ` cvs-commit at gcc dot gnu.org
  2024-06-12 13:28 ` ssbssa at sourceware dot org
  3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-06-12 13:26 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=12213

--- Comment #1 from Sourceware Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Hannes Domani <ssbssa@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=292b9a302933418abcb8b76b23e83af8028c659a

commit 292b9a302933418abcb8b76b23e83af8028c659a
Author: Hannes Domani <ssbssa@yahoo.de>
Date:   Wed Jun 12 15:24:02 2024 +0200

    Allow calling of user-defined function call operators

    Currently it's not possible to call user-defined function call
    operators, at least not without specifying operator() directly:
    ```
    (gdb) l 1
    1       struct S {
    2         int operator() (int x) { return x + 5; }
    3       };
    4
    5       int main () {
    6         S s;
    7
    8         return s(23);
    9       }
    (gdb) p s(10)
    Invalid data type for function to be called.
    (gdb) p s.operator()(10)
    $1 = 15
    ```

    This now looks if an user-defined call operator is available when
    trying to 'call' a struct value, and calls it instead, making this
    possible:
    ```
    (gdb) p s(10)
    $1 = 15
    ```

    The change in operation::evaluate_funcall is to make sure the type
    fields are only used for function types, only they use them as the
    argument types.

    Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=12213
    Approved-By: Tom Tromey <tom@tromey.com>

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug c++/12213] operator() does not work
  2010-11-12 21:23 [Bug c++/12213] New: operator() does not work tromey at redhat dot com
                   ` (2 preceding siblings ...)
  2024-06-12 13:26 ` cvs-commit at gcc dot gnu.org
@ 2024-06-12 13:28 ` ssbssa at sourceware dot org
  3 siblings, 0 replies; 5+ messages in thread
From: ssbssa at sourceware dot org @ 2024-06-12 13:28 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=12213

Hannes Domani <ssbssa at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |16.1
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #2 from Hannes Domani <ssbssa at sourceware dot org> ---
Fixed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

end of thread, other threads:[~2024-06-12 13:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-12 21:23 [Bug c++/12213] New: operator() does not work tromey at redhat dot com
2013-10-31 19:30 ` [Bug c++/12213] " tromey at redhat dot com
2023-12-28 11:48 ` ssbssa at sourceware dot org
2024-06-12 13:26 ` cvs-commit at gcc dot gnu.org
2024-06-12 13:28 ` ssbssa at sourceware dot org

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).