public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/55408] New: ICE for member template definition with non-type variadic parameter @ 2012-11-20 7:18 lucdanton at free dot fr 2012-11-20 8:19 ` [Bug c++/55408] " mpolacek at gcc dot gnu.org ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: lucdanton at free dot fr @ 2012-11-20 7:18 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55408 Bug #: 55408 Summary: ICE for member template definition with non-type variadic parameter Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned@gcc.gnu.org ReportedBy: lucdanton@free.fr Created attachment 28740 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28740 Reproducible testcase $ g++-snapshot --version g++-snapshot (Debian 20120915-1) 4.8.0 20120915 (experimental) [trunk revision 191353] When attempting to compile this program: struct foo { template<int*> void bar(); }; template<int*...> void foo::bar() {} int main() { extern int i; foo {}.bar<&i>(); } GCC complains: main.cpp: In function 'int main()': main.cpp:12:21: internal compiler error: Segmentation fault foo {}.bar<&i>(); ^ Some casual investigating suggests that this happens every time the definition for a member template is exactly the same as its declaration save for the fact that a non-type parameter is made variadic. Otherwise, e.g. if the parameter in question is a type or template parameter in the declaration or if the template is declared taking int and defined taking long... then GCC correctly reports that the definition doesn't have a match. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/55408] ICE for member template definition with non-type variadic parameter 2012-11-20 7:18 [Bug c++/55408] New: ICE for member template definition with non-type variadic parameter lucdanton at free dot fr @ 2012-11-20 8:19 ` mpolacek at gcc dot gnu.org 2012-11-20 10:41 ` paolo.carlini at oracle dot com 2021-08-08 6:44 ` pinskia at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: mpolacek at gcc dot gnu.org @ 2012-11-20 8:19 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55408 Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> 2012-11-20 08:18:57 UTC --- Happens even with r188998. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/55408] ICE for member template definition with non-type variadic parameter 2012-11-20 7:18 [Bug c++/55408] New: ICE for member template definition with non-type variadic parameter lucdanton at free dot fr 2012-11-20 8:19 ` [Bug c++/55408] " mpolacek at gcc dot gnu.org @ 2012-11-20 10:41 ` paolo.carlini at oracle dot com 2021-08-08 6:44 ` pinskia at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: paolo.carlini at oracle dot com @ 2012-11-20 10:41 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55408 Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice-on-invalid-code Status|UNCONFIRMED |NEW Last reconfirmed| |2012-11-20 Ever Confirmed|0 |1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/55408] ICE for member template definition with non-type variadic parameter 2012-11-20 7:18 [Bug c++/55408] New: ICE for member template definition with non-type variadic parameter lucdanton at free dot fr 2012-11-20 8:19 ` [Bug c++/55408] " mpolacek at gcc dot gnu.org 2012-11-20 10:41 ` paolo.carlini at oracle dot com @ 2021-08-08 6:44 ` pinskia at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu.org @ 2021-08-08 6:44 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55408 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2012-11-20 00:00:00 |2021-8-7 --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- We reject this: struct foo { template<int*> void bar(); }; template<int*, int> void foo::bar() {} But incorrectly accepts: struct foo { template<int*> void bar(); }; template<int*...> void foo::bar() {} ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-08-08 6:44 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-11-20 7:18 [Bug c++/55408] New: ICE for member template definition with non-type variadic parameter lucdanton at free dot fr 2012-11-20 8:19 ` [Bug c++/55408] " mpolacek at gcc dot gnu.org 2012-11-20 10:41 ` paolo.carlini at oracle dot com 2021-08-08 6:44 ` pinskia 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).