public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "ai.azuma at gmail dot com" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/53401] New: internal compiler error: Segmentation fault on infinite argument deduction of constexpr templates Date: Fri, 18 May 2012 17:31:00 -0000 [thread overview] Message-ID: <bug-53401-4@http.gcc.gnu.org/bugzilla/> (raw) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53401 Bug #: 53401 Summary: internal compiler error: Segmentation fault on infinite argument deduction of constexpr templates Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned@gcc.gnu.org ReportedBy: ai.azuma@gmail.com Created attachment 27434 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27434 Outputs from -v option (repeated error messages are snipped) and preprocessed source. The following invalid code causes an ICE with GCC 4.8.0 20120513 (experimental) and -std=c++11. ///////////////////////////////////////////// template<int I> struct index {}; constexpr int recursive_impl(index<0u>) { return 0; } template<int N> constexpr auto recursive_impl(index<N>) // Line 11 -> decltype(recursive_impl(index<N - 1>())) { return recursive_impl(index<N - 1>()); } template<int N> constexpr auto recursive() -> decltype(recursive_impl(index<N>())) { return recursive_impl(index<N>()); } void f(int i) { recursive<1>(); } ///////////////////////////////////////////// g++: internal compiler error: Segmentation fault (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. The above-mentioned code is invalid because there isn't anything to prevent the compiler from trying infinite template argument deduction in the second overload of `recursive_impl' (Line 11). So, I expect error messages like "template instantiation depth exceeds maximum...". However, the compiler dies in segmentation fault. `constexpr' is necessary to reproduce the ICE. Otherwise, the compiler outputs ordinary error messages as expected. 4.6.4 20120511 (prerelease) and 4.7.1 20120512 (prerelease) also cause the same problem, too.
next reply other threads:[~2012-05-18 17:29 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-05-18 17:31 ai.azuma at gmail dot com [this message] 2012-05-20 20:01 ` [Bug c++/53401] [C++11] " pinskia at gcc dot gnu.org 2013-08-09 19:37 ` paolo.carlini at oracle dot com
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=bug-53401-4@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@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: linkBe 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).