public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/108090] New: pack expansion of using declarations doesn't properly handle dependent conversion function names
@ 2022-12-14 0:15 richard-gccbugzilla at metafoo dot co.uk
2022-12-15 23:50 ` [Bug c++/108090] " cvs-commit at gcc dot gnu.org
2022-12-15 23:51 ` ppalka at gcc dot gnu.org
0 siblings, 2 replies; 3+ messages in thread
From: richard-gccbugzilla at metafoo dot co.uk @ 2022-12-14 0:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108090
Bug ID: 108090
Summary: pack expansion of using declarations doesn't properly
handle dependent conversion function names
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: richard-gccbugzilla at metafoo dot co.uk
Target Milestone: ---
Testcase, which I believe is valid, and other compilers accept:
template<typename T> struct As { operator T(); };
template<typename ...T> struct AsAll : As<T>... {
using As<T>::operator T...;
};
AsAll<int, float, char> x;
But GCC rejects:
<source>:3:26: error: parameter packs not expanded with '...':
3 | using As<T>::operator T...;
| ^~~
<source>:3:26: note: 'T'
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/108090] pack expansion of using declarations doesn't properly handle dependent conversion function names
2022-12-14 0:15 [Bug c++/108090] New: pack expansion of using declarations doesn't properly handle dependent conversion function names richard-gccbugzilla at metafoo dot co.uk
@ 2022-12-15 23:50 ` cvs-commit at gcc dot gnu.org
2022-12-15 23:51 ` ppalka at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-12-15 23:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108090
--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppalka@gcc.gnu.org>:
https://gcc.gnu.org/g:e79d51963378b10ab90544a7d8eeb6266e9a57f6
commit r13-4734-ge79d51963378b10ab90544a7d8eeb6266e9a57f6
Author: Patrick Palka <ppalka@redhat.com>
Date: Thu Dec 15 18:50:16 2022 -0500
c++: variadic using-decl with parm pack in terminal name [PR102104]
There's a curious corner case with variadic member using-decls: the
terminal name can also contain a parameter pack, and only through naming
a conversion function, e.g.
using A<Ts>::operator Ts...;
We currently only handle parameter packs appearing in the qualifying
scope of a variadic using-decl; this patch adds support for the above
case as well, representing such a using-decl via two pack expansions,
one for the qualifying scope and one for the terminal name (despite
logically there being just one). Then at instantiation time we manually
merge them.
PR c++/102104
PR c++/108090
gcc/cp/ChangeLog:
* error.cc (dump_decl) <case USING_DECL>: Look through a
pack expansion in the name as well.
* parser.cc (cp_parser_using_declaration): Handle a parameter
pack appearing in the terminal name of a variadic using-decl.
* pt.cc (tsubst_decl) <case USING_DECL>: Likewise. Combine the
handling of variadic and non-variadic using-decls.
gcc/testsuite/ChangeLog:
* g++.dg/cpp1z/using-variadic1.C: New test.
* g++.dg/cpp1z/using-variadic1a.C: New test.
* g++.dg/cpp1z/using-variadic1b.C: New test.
* g++.dg/cpp1z/using-variadic1c.C: New test.
* g++.dg/cpp1z/using-variadic2.C: New test.
* g++.dg/cpp1z/using-variadic3.C: New test.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/108090] pack expansion of using declarations doesn't properly handle dependent conversion function names
2022-12-14 0:15 [Bug c++/108090] New: pack expansion of using declarations doesn't properly handle dependent conversion function names richard-gccbugzilla at metafoo dot co.uk
2022-12-15 23:50 ` [Bug c++/108090] " cvs-commit at gcc dot gnu.org
@ 2022-12-15 23:51 ` ppalka at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: ppalka at gcc dot gnu.org @ 2022-12-15 23:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108090
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Target Milestone|--- |13.0
Assignee|unassigned at gcc dot gnu.org |ppalka at gcc dot gnu.org
CC| |ppalka at gcc dot gnu.org
Resolution|--- |FIXED
--- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Fixed for GCC 13
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-12-15 23:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-14 0:15 [Bug c++/108090] New: pack expansion of using declarations doesn't properly handle dependent conversion function names richard-gccbugzilla at metafoo dot co.uk
2022-12-15 23:50 ` [Bug c++/108090] " cvs-commit at gcc dot gnu.org
2022-12-15 23:51 ` ppalka 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).