public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/61507] New: GCC does not compile function with parameter pack.
@ 2014-06-14  1:38 congh at google dot com
  2014-06-14 11:59 ` [Bug c++/61507] " redi at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: congh at google dot com @ 2014-06-14  1:38 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 61507
           Summary: GCC does not compile function with parameter pack.
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: congh at google dot com

GCC fails to compile the following code:



struct A {
  void foo(const int &);
  void foo(float);
};

template <typename... Args>
void bar(void (A::*memfun)(Args...), Args... args);

void go(const int& i) {
  bar<const int &>(&A::foo, i);
}




The error message is shown below:



t.C:10:30: error: no matching function for call to ‘bar(<unresolved overloaded
function type>, const int&)’
   bar<const int &>(&A::foo, i);
                              ^
t.C:7:6: note: candidate: template<class ... Args> void bar(void (A::*)(Args
...), Args ...)
 void bar(void (A::*memfun)(Args...), Args... args);
      ^
t.C:7:6: note:   template argument deduction/substitution failed:
t.C:10:30: note:   inconsistent parameter pack deduction with ‘const int&’ and
‘int’
   bar<const int &>(&A::foo, i);



As the type is explicitly specified, why GCC would like to "deduce" it?
>From gcc-bugs-return-454175-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Sat Jun 14 06:56:31 2014
Return-Path: <gcc-bugs-return-454175-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 8884 invoked by alias); 14 Jun 2014 06:56:30 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 8830 invoked by uid 55); 14 Jun 2014 06:56:25 -0000
From: "charlet at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug ada/61505] [4.10 Regression] bootstrap broken by ada/gnat_rm.texi after r211448
Date: Sat, 14 Jun 2014 06:56:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: ada
X-Bugzilla-Version: 4.10.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: charlet at gcc dot gnu.org
X-Bugzilla-Status: REOPENED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.10.0
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-61505-4-76Zb0Gps4B@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-61505-4@http.gcc.gnu.org/bugzilla/>
References: <bug-61505-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-06/txt/msg01257.txt.bz2
Content-length: 411

https://gcc.gnu.org/bugzilla/show_bug.cgi?ida505

--- Comment #4 from Arnaud Charlet <charlet at gcc dot gnu.org> ---
Author: charlet
Date: Sat Jun 14 06:55:49 2014
New Revision: 211665

URL: https://gcc.gnu.org/viewcvs?rev!1665&root=gcc&view=rev
Log:
        PR ada/61505
        * gnat_rm.texi: Attempt to fix error with makeinfo 5.1

Modified:
    trunk/gcc/ada/ChangeLog
    trunk/gcc/ada/gnat_rm.texi


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

* [Bug c++/61507] GCC does not compile function with parameter pack.
  2014-06-14  1:38 [Bug c++/61507] New: GCC does not compile function with parameter pack congh at google dot com
@ 2014-06-14 11:59 ` redi at gcc dot gnu.org
  2014-06-18 22:14 ` jason at gcc dot gnu.org
  2014-06-19  9:35 ` jason at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: redi at gcc dot gnu.org @ 2014-06-14 11:59 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-06-14
     Ever confirmed|0                           |1

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Cong Hou from comment #0)
> As the type is explicitly specified, why GCC would like to "deduce" it?

Probably because with a variadic template there could be additional arguments
that haven't been explicitly specified and so need to be deduced.  However, in
this case the number of function arguments should tell the compiler the pack
only contains one type, and therefore nothing more needs to be deduced.


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

* [Bug c++/61507] GCC does not compile function with parameter pack.
  2014-06-14  1:38 [Bug c++/61507] New: GCC does not compile function with parameter pack congh at google dot com
  2014-06-14 11:59 ` [Bug c++/61507] " redi at gcc dot gnu.org
@ 2014-06-18 22:14 ` jason at gcc dot gnu.org
  2014-06-19  9:35 ` jason at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: jason at gcc dot gnu.org @ 2014-06-18 22:14 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Wed Jun 18 22:13:40 2014
New Revision: 211808

URL: https://gcc.gnu.org/viewcvs?rev=211808&root=gcc&view=rev
Log:
    PR c++/61507
    * pt.c (resolve_overloaded_unification): Preserve
    ARGUMENT_PACK_EXPLICIT_ARGS.

Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic159.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/pt.c


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

* [Bug c++/61507] GCC does not compile function with parameter pack.
  2014-06-14  1:38 [Bug c++/61507] New: GCC does not compile function with parameter pack congh at google dot com
  2014-06-14 11:59 ` [Bug c++/61507] " redi at gcc dot gnu.org
  2014-06-18 22:14 ` jason at gcc dot gnu.org
@ 2014-06-19  9:35 ` jason at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: jason at gcc dot gnu.org @ 2014-06-19  9:35 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Thu Jun 19 09:34:48 2014
New Revision: 211819

URL: https://gcc.gnu.org/viewcvs?rev=211819&root=gcc&view=rev
Log:
    PR c++/61507
    * pt.c (resolve_overloaded_unification): Preserve
    ARGUMENT_PACK_EXPLICIT_ARGS.

Added:
    branches/gcc-4_9-branch/gcc/testsuite/g++.dg/cpp0x/variadic159.C
Modified:
    branches/gcc-4_9-branch/gcc/cp/ChangeLog
    branches/gcc-4_9-branch/gcc/cp/pt.c


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

end of thread, other threads:[~2014-06-19  9:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-14  1:38 [Bug c++/61507] New: GCC does not compile function with parameter pack congh at google dot com
2014-06-14 11:59 ` [Bug c++/61507] " redi at gcc dot gnu.org
2014-06-18 22:14 ` jason at gcc dot gnu.org
2014-06-19  9:35 ` 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).