public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: rguenth@tat.physik.uni-tuebingen.de
To: gcc-gnats@gcc.gnu.org
Subject: c++/10146: [3.4 regression] [new parser] template function lookup failure(s)
Date: Wed, 19 Mar 2003 08:56:00 -0000	[thread overview]
Message-ID: <20030319085309.10970.qmail@sources.redhat.com> (raw)


>Number:         10146
>Category:       c++
>Synopsis:       [3.4 regression] [new parser] template function lookup failure(s)
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 19 08:56:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Richard Guenther
>Release:        g++-3.4 (GCC) 3.4 20030313 (experimental)
>Organization:
>Environment:

>Description:
In the following testcase the marked lines fail/work even if they should/should not (the former being the problem for me). One should carefuly check the standard if any of the working one should be rejected.

The error message from compiling the testcase is

bellatrix:~/src/tests$ g++-3.4 -c temp.cpp 
temp.cpp: In member function `void Bar<T>::operator()(const U&) [with U = int, 
   T = char]':
temp.cpp:32:   instantiated from here
temp.cpp:14: error: no matching function for call to `Foo<int>::foo(const int&)
   '
temp.cpp:15: error: no matching function for call to `Foo<int>::foo(const int&)
   '
temp.cpp:16: error: no matching function for call to `Foo<int>::foo(const int&)
   '
temp.cpp:32:   instantiated from here
temp.cpp:18: error: no matching function for call to `Foo<int>::bar(const int&)
   '
temp.cpp:19: error: no matching function for call to `Foo<int>::bar(const int&)
   '


Testcase:

template <class T>
struct Foo {
        template <class U>
        static void foo(const U&);
        template <class U>
        void bar(const U&);
};

template <class T>
struct Bar {
        template <class U>
        void operator()(const U&u)
        {
                Foo<int>().foo<U>(u);          // does not work (ok)
                Foo<int>::foo<U>(u);           // does not work (ok)
                Foo<int>().template foo<U>(u); // does not work
                Foo<int>::template foo<U>(u);  // does work
                Foo<int>().bar<U>(u);          // does not work (ok)
                Foo<int>().template bar<U>(u); // does not work
                Foo<int>().foo(u);             // does work ??
                Foo<int>::foo(u);              // does work ??
                Foo<int>().template foo(u);    // does work
                Foo<int>::template foo(u);     // does work
                Foo<int>().bar(u);             // does work ??
                Foo<int>().template bar(u);    // does work
        }
};

void foo()
{
        int i;
        Bar<char>()(i);
}
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


             reply	other threads:[~2003-03-19  8:56 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-19  8:56 rguenth [this message]
2003-03-19 12:26 Richard Guenther
2003-03-19 12:26 Giovanni Bajo
2003-03-19 12:36 Richard Guenther
2003-03-19 12:36 Gabriel Dos Reis
2003-03-19 12:46 Gabriel Dos Reis
2003-03-19 12:56 Giovanni Bajo
2003-03-19 12:56 Richard Guenther
2003-03-20  2:05 bangerth

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=20030319085309.10970.qmail@sources.redhat.com \
    --to=rguenth@tat.physik.uni-tuebingen.de \
    --cc=gcc-gnats@gcc.gnu.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).