public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/106310] New: Failure to resolve call to template member function in template base class.
@ 2022-07-14 23:46 lnicoara at thinkoid dot org
  2022-07-14 23:50 ` [Bug c++/106310] " pinskia at gcc dot gnu.org
                   ` (18 more replies)
  0 siblings, 19 replies; 20+ messages in thread
From: lnicoara at thinkoid dot org @ 2022-07-14 23:46 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

            Bug ID: 106310
           Summary: Failure to resolve call to template member function in
                    template base class.
           Product: gcc
           Version: 12.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lnicoara at thinkoid dot org
  Target Milestone: ---

The following test case fails to compile with gcc (and I believe it should
correctly resolve the call to Base< T >::set):

$ cat t.cc; g++ -c t.cc
#include <set>

using namespace std;

namespace X {

template< typename T >
struct Base
{
        template< std::size_t > void set(T const &) { }
};

template< typename T >
struct Derived : Base< T >
{
        void f(T const &arg) {
                this->template set< 0 >(arg);
        }
};

}
t.cc: In member function ‘void X::Derived<T>::f(const T&)’:
t.cc:17:39: error: type/value mismatch at argument 1 in template parameter list
for ‘template<class _Key, class _Compare, class _Alloc> class std::set’
   17 |                 this->template set< 0 >(arg);
      |                                       ^
t.cc:17:39: note:   expected a type, got ‘0’
t.cc:17:39: error: template argument 2 is invalid
t.cc:17:39: error: template argument 3 is invalid

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

* [Bug c++/106310] Failure to resolve call to template member function in template base class.
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
@ 2022-07-14 23:50 ` pinskia at gcc dot gnu.org
  2022-07-14 23:53 ` pinskia at gcc dot gnu.org
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-07-14 23:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
There is a C++ defect report about this.

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

* [Bug c++/106310] Failure to resolve call to template member function in template base class.
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
  2022-07-14 23:50 ` [Bug c++/106310] " pinskia at gcc dot gnu.org
@ 2022-07-14 23:53 ` pinskia at gcc dot gnu.org
  2022-07-14 23:55 ` [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup pinskia at gcc dot gnu.org
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-07-14 23:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
template <class T>
struct set{};

template< typename T >
struct Base
{
        template< int > int set(T const &) { }
};

template< typename T >
struct Derived : Base< T >
{
        void f(T const &arg) {
                this->template set< 0 >(arg);
        }
};

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

* [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
  2022-07-14 23:50 ` [Bug c++/106310] " pinskia at gcc dot gnu.org
  2022-07-14 23:53 ` pinskia at gcc dot gnu.org
@ 2022-07-14 23:55 ` pinskia at gcc dot gnu.org
  2022-07-15  7:57 ` [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211 marxin at gcc dot gnu.org
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-07-14 23:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Failure to resolve call to  |[12/13 Regregression]
                   |template member function in |lookup after this-> seems
                   |template base class.        |wrong for dependent lookup
           Keywords|                            |rejects-valid

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
And yes there is a defect report in namelookup after this-> . I know there is a
resolution of it but I don't remember which way it went either.

Marking as a regression as GCC 11 and before accepted the code but it might be
invalid ...

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

* [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (2 preceding siblings ...)
  2022-07-14 23:55 ` [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup pinskia at gcc dot gnu.org
@ 2022-07-15  7:57 ` marxin at gcc dot gnu.org
  2022-07-18  7:30 ` rguenth at gcc dot gnu.org
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: marxin at gcc dot gnu.org @ 2022-07-15  7:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
            Summary|[12/13 Regregression]       |[12/13 Regregression]
                   |lookup after this-> seems   |lookup after this-> seems
                   |wrong for dependent lookup  |wrong for dependent lookup
                   |                            |since
                   |                            |r12-6754-g30f2c22def739211
                 CC|                            |jason at gcc dot gnu.org,
                   |                            |marxin at gcc dot gnu.org
   Last reconfirmed|                            |2022-07-15
             Status|UNCONFIRMED                 |NEW

--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> ---
Started with r12-6754-g30f2c22def739211.

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

* [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (3 preceding siblings ...)
  2022-07-15  7:57 ` [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211 marxin at gcc dot gnu.org
@ 2022-07-18  7:30 ` rguenth at gcc dot gnu.org
  2023-05-08 12:25 ` rguenth at gcc dot gnu.org
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-07-18  7:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |12.2

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

* [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (4 preceding siblings ...)
  2022-07-18  7:30 ` rguenth at gcc dot gnu.org
@ 2023-05-08 12:25 ` rguenth at gcc dot gnu.org
  2023-07-12  3:24 ` [Bug c++/106310] [12/13/14 " pinskia at gcc dot gnu.org
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-05-08 12:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|12.3                        |12.4

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 12.3 is being released, retargeting bugs to GCC 12.4.

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

* [Bug c++/106310] [12/13/14 Regregression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (5 preceding siblings ...)
  2023-05-08 12:25 ` rguenth at gcc dot gnu.org
@ 2023-07-12  3:24 ` pinskia at gcc dot gnu.org
  2023-07-12  3:24 ` pinskia at gcc dot gnu.org
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-07-12  3:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |justin at jtcholzer dot net

--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
*** Bug 110636 has been marked as a duplicate of this bug. ***

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

* [Bug c++/106310] [12/13/14 Regregression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (6 preceding siblings ...)
  2023-07-12  3:24 ` [Bug c++/106310] [12/13/14 " pinskia at gcc dot gnu.org
@ 2023-07-12  3:24 ` pinskia at gcc dot gnu.org
  2023-07-26 14:40 ` [Bug c++/106310] [12/13/14 Regression] " jason at gcc dot gnu.org
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-07-12  3:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |deco33000 at yandex dot com

--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
*** Bug 105767 has been marked as a duplicate of this bug. ***

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

* [Bug c++/106310] [12/13/14 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (7 preceding siblings ...)
  2023-07-12  3:24 ` pinskia at gcc dot gnu.org
@ 2023-07-26 14:40 ` jason at gcc dot gnu.org
  2023-07-26 16:45 ` cvs-commit at gcc dot gnu.org
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jason at gcc dot gnu.org @ 2023-07-26 14:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |jason at gcc dot gnu.org

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

* [Bug c++/106310] [12/13/14 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (8 preceding siblings ...)
  2023-07-26 14:40 ` [Bug c++/106310] [12/13/14 Regression] " jason at gcc dot gnu.org
@ 2023-07-26 16:45 ` cvs-commit at gcc dot gnu.org
  2023-07-26 19:25 ` [Bug c++/106310] [12/13 " jason at gcc dot gnu.org
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-07-26 16:45 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Jason Merrill <jason@gcc.gnu.org>:

https://gcc.gnu.org/g:51b997ea1d07465cb0208c711975b545872a2d2b

commit r14-2799-g51b997ea1d07465cb0208c711975b545872a2d2b
Author: Jason Merrill <jason@redhat.com>
Date:   Wed Jul 26 10:39:34 2023 -0400

    c++: member vs global template [PR106310]

    For backward compatibility we still want to allow patterns like
    this->A<T>::foo, but the template keyword in a qualified name is
    specifically to specify that a dependent name is a template, so don't look
    in the enclosing scope at all.

    Also fix handling of dependent bases: if member lookup in the current
    instantiation fails and we have dependent bases, the lookup is dependent.
    We were already handling that for the case where lookup in the enclosing
    scope also fails, but we also want it to affect that lookup itself.

            PR c++/106310

    gcc/cp/ChangeLog:

            * parser.cc (cp_parser_template_name): Skip non-member
            lookup after the template keyword.
            (cp_parser_lookup_name): Pass down template_keyword_p.

    gcc/testsuite/ChangeLog:

            * g++.dg/template/template-keyword4.C: New test.

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

* [Bug c++/106310] [12/13 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (9 preceding siblings ...)
  2023-07-26 16:45 ` cvs-commit at gcc dot gnu.org
@ 2023-07-26 19:25 ` jason at gcc dot gnu.org
  2023-08-11 21:21 ` cvs-commit at gcc dot gnu.org
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jason at gcc dot gnu.org @ 2023-07-26 19:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |11.3.0, 14.0
            Summary|[12/13/14 Regression]       |[12/13 Regression] lookup
                   |lookup after this-> seems   |after this-> seems wrong
                   |wrong for dependent lookup  |for dependent lookup since
                   |since                       |r12-6754-g30f2c22def739211
                   |r12-6754-g30f2c22def739211  |

--- Comment #10 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed for 14 so far.

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

* [Bug c++/106310] [12/13 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (10 preceding siblings ...)
  2023-07-26 19:25 ` [Bug c++/106310] [12/13 " jason at gcc dot gnu.org
@ 2023-08-11 21:21 ` cvs-commit at gcc dot gnu.org
  2023-08-11 21:22 ` cvs-commit at gcc dot gnu.org
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-08-11 21:21 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Jason Merrill
<jason@gcc.gnu.org>:

https://gcc.gnu.org/g:1cb272a8b1669e438aadf4a95da3979ac07ca9ce

commit r12-9812-g1cb272a8b1669e438aadf4a95da3979ac07ca9ce
Author: Jason Merrill <jason@redhat.com>
Date:   Wed Jul 26 10:39:34 2023 -0400

    c++: member vs global template [PR106310]

    For backward compatibility we still want to allow patterns like
    this->A<T>::foo, but the template keyword in a qualified name is
    specifically to specify that a dependent name is a template, so don't look
    in the enclosing scope at all.

    Also fix handling of dependent bases: if member lookup in the current
    instantiation fails and we have dependent bases, the lookup is dependent.
    We were already handling that for the case where lookup in the enclosing
    scope also fails, but we also want it to affect that lookup itself.

            PR c++/106310

    gcc/cp/ChangeLog:

            * parser.cc (cp_parser_template_name): Skip non-member
            lookup after the template keyword.
            (cp_parser_lookup_name): Pass down template_keyword_p.

    gcc/testsuite/ChangeLog:

            * g++.dg/template/template-keyword4.C: New test.

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

* [Bug c++/106310] [12/13 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (11 preceding siblings ...)
  2023-08-11 21:21 ` cvs-commit at gcc dot gnu.org
@ 2023-08-11 21:22 ` cvs-commit at gcc dot gnu.org
  2023-08-11 21:24 ` jason at gcc dot gnu.org
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-08-11 21:22 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Jason Merrill
<jason@gcc.gnu.org>:

https://gcc.gnu.org/g:db6c4ba976a795480cbccc380e3a84eec1de8e68

commit r13-7712-gdb6c4ba976a795480cbccc380e3a84eec1de8e68
Author: Jason Merrill <jason@redhat.com>
Date:   Wed Jul 26 10:39:34 2023 -0400

    c++: member vs global template [PR106310]

    For backward compatibility we still want to allow patterns like
    this->A<T>::foo, but the template keyword in a qualified name is
    specifically to specify that a dependent name is a template, so don't look
    in the enclosing scope at all.

    Also fix handling of dependent bases: if member lookup in the current
    instantiation fails and we have dependent bases, the lookup is dependent.
    We were already handling that for the case where lookup in the enclosing
    scope also fails, but we also want it to affect that lookup itself.

            PR c++/106310

    gcc/cp/ChangeLog:

            * parser.cc (cp_parser_template_name): Skip non-member
            lookup after the template keyword.
            (cp_parser_lookup_name): Pass down template_keyword_p.

    gcc/testsuite/ChangeLog:

            * g++.dg/template/template-keyword4.C: New test.

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

* [Bug c++/106310] [12/13 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (12 preceding siblings ...)
  2023-08-11 21:22 ` cvs-commit at gcc dot gnu.org
@ 2023-08-11 21:24 ` jason at gcc dot gnu.org
  2023-09-08  9:10 ` fw at gcc dot gnu.org
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jason at gcc dot gnu.org @ 2023-08-11 21:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed for 12.4/13.3/14.

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

* [Bug c++/106310] [12/13 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (13 preceding siblings ...)
  2023-08-11 21:24 ` jason at gcc dot gnu.org
@ 2023-09-08  9:10 ` fw at gcc dot gnu.org
  2023-09-08 20:27 ` mpolacek at gcc dot gnu.org
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: fw at gcc dot gnu.org @ 2023-09-08  9:10 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Florian Weimer <fw at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fw at gcc dot gnu.org

--- Comment #14 from Florian Weimer <fw at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #4)
> Started with r12-6754-g30f2c22def739211.

And this was backported as r11-9991-g8d2f59c8e26960df, so this issue currently
exists on the gcc-11 branch.

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

* [Bug c++/106310] [12/13 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (14 preceding siblings ...)
  2023-09-08  9:10 ` fw at gcc dot gnu.org
@ 2023-09-08 20:27 ` mpolacek at gcc dot gnu.org
  2023-09-11 20:03 ` [Bug c++/106310] [11/12/13 " jason at gcc dot gnu.org
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2023-09-08 20:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mpolacek at gcc dot gnu.org

--- Comment #15 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
I tried to backport the patch to gcc11 but cp_parser_lookup_name has changed
too much.

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

* [Bug c++/106310] [11/12/13 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (15 preceding siblings ...)
  2023-09-08 20:27 ` mpolacek at gcc dot gnu.org
@ 2023-09-11 20:03 ` jason at gcc dot gnu.org
  2023-09-11 22:11 ` [Bug c++/106310] [11 " cvs-commit at gcc dot gnu.org
  2023-09-11 22:11 ` jason at gcc dot gnu.org
  18 siblings, 0 replies; 20+ messages in thread
From: jason at gcc dot gnu.org @ 2023-09-11 20:03 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |ASSIGNED
            Summary|[12/13 Regression] lookup   |[11/12/13 Regression]
                   |after this-> seems wrong    |lookup after this-> seems
                   |for dependent lookup since  |wrong for dependent lookup
                   |r12-6754-g30f2c22def739211  |since
                   |                            |r12-6754-g30f2c22def739211
   Target Milestone|12.4                        |11.5
         Resolution|FIXED                       |---

--- Comment #16 from Jason Merrill <jason at gcc dot gnu.org> ---
Reopening as 11 regression.

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

* [Bug c++/106310] [11 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (16 preceding siblings ...)
  2023-09-11 20:03 ` [Bug c++/106310] [11/12/13 " jason at gcc dot gnu.org
@ 2023-09-11 22:11 ` cvs-commit at gcc dot gnu.org
  2023-09-11 22:11 ` jason at gcc dot gnu.org
  18 siblings, 0 replies; 20+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-09-11 22:11 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

--- Comment #17 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jason Merrill
<jason@gcc.gnu.org>:

https://gcc.gnu.org/g:506d5f399bef7f2d8c48fd83d853c6ff7811a226

commit r11-10983-g506d5f399bef7f2d8c48fd83d853c6ff7811a226
Author: Jason Merrill <jason@redhat.com>
Date:   Wed Jul 26 10:39:34 2023 -0400

    c++: member vs global template [PR106310]

    For backward compatibility we still want to allow patterns like
    this->A<T>::foo, but the template keyword in a qualified name is
    specifically to specify that a dependent name is a template, so don't look
    in the enclosing scope at all.

    Also fix handling of dependent bases: if member lookup in the current
    instantiation fails and we have dependent bases, the lookup is dependent.
    We were already handling that for the case where lookup in the enclosing
    scope also fails, but we also want it to affect that lookup itself.

            PR c++/106310

    gcc/cp/ChangeLog:

            * parser.c (cp_parser_template_name): Skip non-member
            lookup after the template keyword.
            (cp_parser_lookup_name): Pass down template_keyword_p.

    gcc/testsuite/ChangeLog:

            * g++.dg/template/template-keyword4.C: New test.

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

* [Bug c++/106310] [11 Regression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211
  2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
                   ` (17 preceding siblings ...)
  2023-09-11 22:11 ` [Bug c++/106310] [11 " cvs-commit at gcc dot gnu.org
@ 2023-09-11 22:11 ` jason at gcc dot gnu.org
  18 siblings, 0 replies; 20+ messages in thread
From: jason at gcc dot gnu.org @ 2023-09-11 22:11 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106310

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #18 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed for 11.5.

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

end of thread, other threads:[~2023-09-11 22:11 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-14 23:46 [Bug c++/106310] New: Failure to resolve call to template member function in template base class lnicoara at thinkoid dot org
2022-07-14 23:50 ` [Bug c++/106310] " pinskia at gcc dot gnu.org
2022-07-14 23:53 ` pinskia at gcc dot gnu.org
2022-07-14 23:55 ` [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup pinskia at gcc dot gnu.org
2022-07-15  7:57 ` [Bug c++/106310] [12/13 Regregression] lookup after this-> seems wrong for dependent lookup since r12-6754-g30f2c22def739211 marxin at gcc dot gnu.org
2022-07-18  7:30 ` rguenth at gcc dot gnu.org
2023-05-08 12:25 ` rguenth at gcc dot gnu.org
2023-07-12  3:24 ` [Bug c++/106310] [12/13/14 " pinskia at gcc dot gnu.org
2023-07-12  3:24 ` pinskia at gcc dot gnu.org
2023-07-26 14:40 ` [Bug c++/106310] [12/13/14 Regression] " jason at gcc dot gnu.org
2023-07-26 16:45 ` cvs-commit at gcc dot gnu.org
2023-07-26 19:25 ` [Bug c++/106310] [12/13 " jason at gcc dot gnu.org
2023-08-11 21:21 ` cvs-commit at gcc dot gnu.org
2023-08-11 21:22 ` cvs-commit at gcc dot gnu.org
2023-08-11 21:24 ` jason at gcc dot gnu.org
2023-09-08  9:10 ` fw at gcc dot gnu.org
2023-09-08 20:27 ` mpolacek at gcc dot gnu.org
2023-09-11 20:03 ` [Bug c++/106310] [11/12/13 " jason at gcc dot gnu.org
2023-09-11 22:11 ` [Bug c++/106310] [11 " cvs-commit at gcc dot gnu.org
2023-09-11 22:11 ` jason at gcc dot gnu.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).