public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/59716] New: variadic template multiple parameter pack expansion fails @ 2014-01-08 7:15 lts-rudolph at gmx dot de 2015-04-04 9:27 ` [Bug c++/59716] " paolo.carlini at oracle dot com ` (12 more replies) 0 siblings, 13 replies; 14+ messages in thread From: lts-rudolph at gmx dot de @ 2014-01-08 7:15 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Bug ID: 59716 Summary: variadic template multiple parameter pack expansion fails Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: lts-rudolph at gmx dot de Created attachment 31770 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31770&action=edit full source code example Multiple parameter pack expansion for variadic templates is broken since 4.8.x versions. The parameter pack expansion itself works with g++ 4.7.x. But the order of expanded parms was wrong. This bug was fixed in 4.8.x but mutiple expansion is now broken. The code fails with the follwing results: /opt/linux-gnu_4.9-20140105/bin/g++ --std=c++11 zwei.cpp -O0 -g -pedantic -Wall -o go2 zwei.cpp: In instantiation of 'CheckVariadic<std::tuple<_Elements ...>, std::tuple<_Elements ...> >::CheckVariadic(T1 ..., T2 ..., T1 ...) [with T1 = {int, float}; T2 = {char, void*}]': zwei.cpp:53:115: required from here zwei.cpp:47:116: error: mismatched argument pack lengths while expanding 'DebugPrinter<T1, T2, T1 ...>' CheckVariadic( T1... args1, T2... args2, T1... args3): DebugPrinter< T1, T2, T1...>(args1, args2..., args1)... {} The problem occurs in this line of code: CheckVariadic( T1... args1, T2... args2, T1... args3): DebugPrinter< T1, T2, T1...>(args1, args2..., args1)... {} The attachment compiles with clang3.3 & clang3.4 as expected. ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de @ 2015-04-04 9:27 ` paolo.carlini at oracle dot com 2015-08-03 11:02 ` lts-rudolph at gmx dot de ` (11 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: paolo.carlini at oracle dot com @ 2015-04-04 9:27 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-04-04 Ever confirmed|0 |1 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de 2015-04-04 9:27 ` [Bug c++/59716] " paolo.carlini at oracle dot com @ 2015-08-03 11:02 ` lts-rudolph at gmx dot de 2021-08-10 2:27 ` pinskia at gcc dot gnu.org ` (10 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: lts-rudolph at gmx dot de @ 2015-08-03 11:02 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 --- Comment #1 from Klaus Rudolph <lts-rudolph at gmx dot de> --- Bug is still present 2015-08-03 ( sorry, can't change "last reconfirmed" entry?! ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de 2015-04-04 9:27 ` [Bug c++/59716] " paolo.carlini at oracle dot com 2015-08-03 11:02 ` lts-rudolph at gmx dot de @ 2021-08-10 2:27 ` pinskia at gcc dot gnu.org 2021-08-10 2:56 ` pinskia at gcc dot gnu.org ` (9 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: pinskia at gcc dot gnu.org @ 2021-08-10 2:27 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Fixed in GCC 7.4.0+ and GCC 8+. ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (2 preceding siblings ...) 2021-08-10 2:27 ` pinskia at gcc dot gnu.org @ 2021-08-10 2:56 ` pinskia at gcc dot gnu.org 2021-11-26 19:51 ` lts-rudolph at gmx dot de ` (8 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: pinskia at gcc dot gnu.org @ 2021-08-10 2:56 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |7.4 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (3 preceding siblings ...) 2021-08-10 2:56 ` pinskia at gcc dot gnu.org @ 2021-11-26 19:51 ` lts-rudolph at gmx dot de 2021-11-26 21:14 ` [Bug c++/59716] [10/11 Regression] " pinskia at gcc dot gnu.org ` (7 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: lts-rudolph at gmx dot de @ 2021-11-26 19:51 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Klaus Rudolph <lts-rudolph at gmx dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|FIXED |--- Status|RESOLVED |REOPENED --- Comment #3 from Klaus Rudolph <lts-rudolph at gmx dot de> --- The attached code again did not compile from gcc 10.x.x https://godbolt.org/z/sbej6GeY1 No the error message is: <source>: In instantiation of 'CheckVariadic<std::tuple<_Tps ...>, std::tuple<_Types ...> >::CheckVariadic(T1 ..., T2 ..., T1 ...) [with T1 = {int, float}; T2 = {char, void*}]': <source>:53:115: required from here <source>:47:116: error: invalid use of pack expansion expression 47 | CheckVariadic( T1... args1, T2... args2, T1... args3): DebugPrinter< T1, T2, T1...>(args1, args2..., args1)... {} | ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] [10/11 Regression] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (4 preceding siblings ...) 2021-11-26 19:51 ` lts-rudolph at gmx dot de @ 2021-11-26 21:14 ` pinskia at gcc dot gnu.org 2021-12-09 9:24 ` marxin at gcc dot gnu.org ` (6 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: pinskia at gcc dot gnu.org @ 2021-11-26 21:14 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|variadic template multiple |[10/11 Regression] variadic |parameter pack expansion |template multiple parameter |fails |pack expansion fails Target Milestone|7.4 |10.4 --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Klaus Rudolph from comment #3) > The attached code again did not compile from gcc 10.x.x Hmm, it works on the trunk though ... ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] [10/11 Regression] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (5 preceding siblings ...) 2021-11-26 21:14 ` [Bug c++/59716] [10/11 Regression] " pinskia at gcc dot gnu.org @ 2021-12-09 9:24 ` marxin at gcc dot gnu.org 2021-12-09 14:38 ` pinskia at gcc dot gnu.org ` (5 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: marxin at gcc dot gnu.org @ 2021-12-09 9:24 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED CC| |marxin at gcc dot gnu.org Status|REOPENED |RESOLVED --- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> --- Fixed with r8-2715-g11399477539ec605. ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] [10/11 Regression] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (6 preceding siblings ...) 2021-12-09 9:24 ` marxin at gcc dot gnu.org @ 2021-12-09 14:38 ` pinskia at gcc dot gnu.org 2021-12-09 14:58 ` marxin at gcc dot gnu.org ` (4 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: pinskia at gcc dot gnu.org @ 2021-12-09 14:38 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |NEW Resolution|FIXED |--- --- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Martin Liška from comment #5) > Fixed with r8-2715-g11399477539ec605. But it was broken sometime after that (again). ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] [10/11 Regression] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (7 preceding siblings ...) 2021-12-09 14:38 ` pinskia at gcc dot gnu.org @ 2021-12-09 14:58 ` marxin at gcc dot gnu.org 2022-04-07 8:39 ` rguenth at gcc dot gnu.org ` (3 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: marxin at gcc dot gnu.org @ 2021-12-09 14:58 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ppalka at gcc dot gnu.org --- Comment #7 from Martin Liška <marxin at gcc dot gnu.org> --- You are correct, it started r10-3735-gcb57504a55015891 again and was fixed in r12-174-g37d2b98100cefcb9. ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] [10/11 Regression] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (8 preceding siblings ...) 2021-12-09 14:58 ` marxin at gcc dot gnu.org @ 2022-04-07 8:39 ` rguenth at gcc dot gnu.org 2022-04-07 9:29 ` rguenth at gcc dot gnu.org ` (2 subsequent siblings) 12 siblings, 0 replies; 14+ messages in thread From: rguenth at gcc dot gnu.org @ 2022-04-07 8:39 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] [10/11 Regression] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (9 preceding siblings ...) 2022-04-07 8:39 ` rguenth at gcc dot gnu.org @ 2022-04-07 9:29 ` rguenth at gcc dot gnu.org 2022-04-07 13:28 ` ppalka at gcc dot gnu.org 2022-04-30 16:01 ` [Bug c++/59716] " ppalka at gcc dot gnu.org 12 siblings, 0 replies; 14+ messages in thread From: rguenth at gcc dot gnu.org @ 2022-04-07 9:29 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 --- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- Patrick, is the bug you fixed and that fixed this testcase a duplicate and thus a regression? ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] [10/11 Regression] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (10 preceding siblings ...) 2022-04-07 9:29 ` rguenth at gcc dot gnu.org @ 2022-04-07 13:28 ` ppalka at gcc dot gnu.org 2022-04-30 16:01 ` [Bug c++/59716] " ppalka at gcc dot gnu.org 12 siblings, 0 replies; 14+ messages in thread From: ppalka at gcc dot gnu.org @ 2022-04-07 13:28 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 --- Comment #9 from Patrick Palka <ppalka at gcc dot gnu.org> --- Hmm, this PR is essentially a dup of PR88580 but I don't think it's a 10/11 regression: between r8-2715 and r10-3735 it seems we just went from incorrectly rejecting the testcase (the behavior before r8-2715) to miscompiling it. After r10-3735 we went back to incorrectly rejecting it (arguably an improvement). So AFAICT we never correctly handled this testcase before r12-174. Output when compiled with GCC trunk: Construction of: DebugPrinter<Head, T>::DebugPrinter(Y ...) [with Y = {int, char, void*, int}; Head = int; T = {char, int, float}] Values: 1, c, 0xddddd, 1, Construction of: DebugPrinter<Head, T>::DebugPrinter(Y ...) [with Y = {float, char, void*, float}; Head = float; T = {void*, int, float}] Values: 2.2, c, 0xddddd, 2.2, GCC 10/11 reject the testcase. Output when compiled with GCC 7.4/8/9 (miscompile): Construction of: DebugPrinter<Head, T>::DebugPrinter(Y ...) [with Y = {int, bool, int}; Head = int; T = {char, int, float}] Values: 1, 0, 1, Construction of: DebugPrinter<Head, T>::DebugPrinter(Y ...) [with Y = {float, bool, float}; Head = float; T = {void*, int, float}] Values: 2.2, 0, 2.2, GCC < 7.4 reject the testcase. Output when compiled with Clang (equivalent to GCC trunk output): Construction of: DebugPrinter<int, char, int, float>::DebugPrinter(Y...) [Head = int, T = <char, int, float>, Y = <int, char, void *, int>] Values: 1, c, 0xddddd, 1, Construction of: DebugPrinter<float, void *, int, float>::DebugPrinter(Y...) [Head = float, T = <void *, int, float>, Y = <float, char, void *, float>] Values: 2.2, c, 0xddddd, 2.2, ^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/59716] variadic template multiple parameter pack expansion fails 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de ` (11 preceding siblings ...) 2022-04-07 13:28 ` ppalka at gcc dot gnu.org @ 2022-04-30 16:01 ` ppalka at gcc dot gnu.org 12 siblings, 0 replies; 14+ messages in thread From: ppalka at gcc dot gnu.org @ 2022-04-30 16:01 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59716 Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Target Milestone|10.4 |12.0 Resolution|--- |DUPLICATE Summary|[10/11 Regression] variadic |variadic template multiple |template multiple parameter |parameter pack expansion |pack expansion fails |fails See Also|https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=88580 | --- Comment #10 from Patrick Palka <ppalka at gcc dot gnu.org> --- So I guess we should consider this a dup of the non-regression PR88580 which is fixed for GCC 12. *** This bug has been marked as a duplicate of bug 88580 *** ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2022-04-30 16:01 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-01-08 7:15 [Bug c++/59716] New: variadic template multiple parameter pack expansion fails lts-rudolph at gmx dot de 2015-04-04 9:27 ` [Bug c++/59716] " paolo.carlini at oracle dot com 2015-08-03 11:02 ` lts-rudolph at gmx dot de 2021-08-10 2:27 ` pinskia at gcc dot gnu.org 2021-08-10 2:56 ` pinskia at gcc dot gnu.org 2021-11-26 19:51 ` lts-rudolph at gmx dot de 2021-11-26 21:14 ` [Bug c++/59716] [10/11 Regression] " pinskia at gcc dot gnu.org 2021-12-09 9:24 ` marxin at gcc dot gnu.org 2021-12-09 14:38 ` pinskia at gcc dot gnu.org 2021-12-09 14:58 ` marxin at gcc dot gnu.org 2022-04-07 8:39 ` rguenth at gcc dot gnu.org 2022-04-07 9:29 ` rguenth at gcc dot gnu.org 2022-04-07 13:28 ` ppalka at gcc dot gnu.org 2022-04-30 16:01 ` [Bug c++/59716] " 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).