Created attachment 42378 [details] file that crashes compilation "g++ -fconcepts crash.cpp" The file I attached crashes the following compilation: g++ -fconcepts crash.cpp both on GCC 7.1.1 and GCC 7.2. GCC 7.1.1 gives the following result: crash.cpp: In instantiation of ‘run_test()::<lambda(auto:1&)> [with auto:1 = const std::__cxx11::basic_string<char>]’: crash.cpp:9:12: required from here crash.cpp:49:58: internal compiler error: Segmentation fault return object.visit([] (auto& x) { return x.empty(); }); GCC 7.2 gives the following result: crash.cpp: In instantiation of 'run_test()::<lambda(auto:1&)> [with auto:1 = const std::__cxx11::basic_string<char>]': crash.cpp:9:12: required from here crash.cpp:49:58: internal compiler error: Segmentation fault return object.visit([] (auto& x) { return x.empty(); }); ^ mmap: Cannot allocate memory The file compiles correctly after commenting out line 31 which applies Concept to visit method: requires Concept<Visitor, decltype(std::declval<Visitor>()(std::declval<std::string&>()))>() or after explicit declaration of the return type to "-> bool" on lambda in line 49: return object.visit([] (auto& x) -> bool { return x.empty(); }); Below I'm pasting the content of the crash.cpp file: #include<vector> #include<string> #include<memory> #include<iostream> template<typename T, typename ReturnType> concept bool Concept() { return requires(T t, const std::string& s, const std::vector<int>& v) { { t(s) } -> ReturnType; { t(v) } -> ReturnType; }; } struct test { enum class kind { string, vector }; struct data { data() { } ~data() { } union { std::string _str; std::vector<int> _v; }; }; kind _kind; std::unique_ptr<data> _data; template<typename Visitor> requires Concept<Visitor, decltype(std::declval<Visitor>()(std::declval<std::string&>()))>() decltype(auto) visit(Visitor&& visitor) const { switch (_kind) { case kind::string: return visitor(_data->_str); case kind::vector: return visitor(_data->_v); } abort(); } }; bool run_test() { test object; object._kind = test::kind::string; object._data = std::make_unique<test::data>(); new (&object._data->_str) std::string("hello test"); return object.visit([] (auto& x) { return x.empty(); }); } int main() { std::cout << run_test() << std::endl; return 0; }
Trunk gives a seemingly bogus error before the ICE: mozilla_jwakely0/crash.cpp: In instantiation of ‘run_test()::<lambda(auto:1&)> [with auto:1 = const std::__cxx11::basic_string<char>]’: mozilla_jwakely0/crash.cpp:9:12: required from here mozilla_jwakely0/crash.cpp:49:47: error: use of parameter from containing function return object.visit([] (auto& x) { return x.empty(); }); ^ mozilla_jwakely0/crash.cpp:49:35: note: ‘const std::__cxx11::basic_string<char>& x’ declared here return object.visit([] (auto& x) { return x.empty(); }); ~~~~~~^ mozilla_jwakely0/crash.cpp:49:58: internal compiler error: Segmentation fault return object.visit([] (auto& x) { return x.empty(); }); ^
GCC 7.3 is being released, adjusting target milestone.
Started to ICE with r249323, before it was accepted.
Author: jason Date: Tue Mar 13 20:22:31 2018 New Revision: 258502 URL: https://gcc.gnu.org/viewcvs?rev=258502&root=gcc&view=rev Log: PR c++/82565 - ICE with concepts and generic lambda. * pt.c (instantiate_decl): Clear fn_context for lambdas. Added: trunk/gcc/testsuite/g++.dg/concepts/lambda1.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c
*** Bug 81918 has been marked as a duplicate of this bug. ***
*** Bug 81997 has been marked as a duplicate of this bug. ***
Your email was bounced... ------------------------- ... because something went wrong between you and your recipient. Ugh! What to do next? ---------------- Well, your specific problem was a *5.1.2 * error. Which means you should: Check the "szaszm.tk" part of "gccbugzilla@szaszm.tk" for misspellings or missing letters. If you find an error, correct it in your contacts list or address book for next time. Or further: It is possible that the domain is temporarily inactive. If the spelling looks correct, contact your mail provider and if necessary, contact your recipient another way (e.g., phone or text message). Get more Bounce Intelligence ™ on 5.1.2 errors here![1] Thanks, have a lovely day. Yours truly, betterbounces.net[2] Rate this email: Helpful[3] :) or... Not Helpful[4] :( Advertisement | Prefer no ads?[5] YOU MIGHT LIKE [6] [7] [8] Learn more about RevenueStripe...[9] --------------------------------------------------------------------- © 2017 betterbounces.net, All rights reserved. Privacy[10] [IMAGE] [IMAGE] [IMAGE] [IMAGE] [IMAGE] 1. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJPXr_iR4rgiLLZkqe6tdPFsJSx1C.jN8WA0gBEPYWycfeWcnefvK4.ElVonUNIKEh.a7_Amtzk9ERuvxiREVx9Jzc_0VTozWrAMokXsDt0RJ99AcfnkLgT8L3yQZyqGXEfSQDAwHaW.6LEEYvdrsXesOBPaIH9av.8716sC00d0FAJPtQ_X.ATaXcguetEUJBeda9ItrafeZNHTMPUQ_HnehmCpbP6BG7.Ou0b7qwY74sPwFq1WyAiRSG9LyOGQ0LEn16uC3S6JP_8WvWrVJIDrZT1VLSgO1nt1mKoWLYLCsA- 2. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJP1LW7_ZkShCTGnQ2zegsxaOnQjd6pFAySM11eQELWLpH0Vs8NmgE3MY0TiDO3KU_V7w0eHjri9.twOAjjam3qwVT1wqEjyssWX7pToKnXUPPwp3PubKtIO_.eSm9QJDx532ceMpL.YKYv_mY2OkvrScJLod3FRuBN 3. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJPXr_iR4rgiLI8scYy3zGZrSsUMZo2FsU8zCKMp_wkGl7PE55sdafJSofi.UP0cvwZYIuuGK4wJaGRfOh19ZlIZWRQh.jstpaPIb0vI4ZDQsSfXq4LdLok.7xa9atUkgOtlPVUtKA7We0846zqhfDIXB3Pp1J_j99VeXNfdqDw6GY3LnC4yHEAcc9IhrWnm6PTj3vgnMFFcniA6aC5DF1aKCZklfVugdN69s29gIVWpKKf8FldaLAB8RHoJJtKMDzFODQLOMVIybpHVNnp9qq1cflRa_bV1pQEBIEoWbqdqHfbBBHeBmxz9C5B29w3qLPw 4. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJPXr_iR4rgiLI8scYy3zGZrSsUMZo2FsU8zCKMp_wkGl7PE55sdafJSofi.UP0cvwZYIuuGK4wJaGRfOh19ZlIZWRQh.jstpaPIb0vI4ZDQsSfXq4LdLok.7xa9atUkgOtlPVUtKA7We0846zqhfDIXKk.ZTVgyDvxQWxjOtn2GNgejbbeQ3AaOEPhX9R5a_6guQLm1cKeJ6S1cfkiVDfPQMbECjzZ29.9wlss1W3AiChlLDCkkDZp.NoPRmgfwGm.oRVhnbinpYUCabfLDAPXfBsIjzGj3ZNA.joEXIvEGAP2lU9ktr3siMyZvqs1prTVtM4YGlAhQYc- 5. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJPXr_iR4rgiLJM1aqrCiXt.Nj1EOqgDkQIHmRmWJ235yKYLS64dYF4kHr7oYp._1yoefKZqYJazfNj5w6g00t5EKg10sPFjlZoLjF5kt.C72GRzz2wDzNEupU.GbiVDfhIgQnoYIzcL7kAomhNX8pejQ3goY8Aq9q8IG5D8kw3hehJyYiw9Ss_xL70x1fE1ugHJz7v9hrVbSWwR5zX8hrV_K.c0z2H6gDK4JrBaHHZrf_KRLOkyDJ4R6II9W6T7bJhkL8XjnhN7ngkFXGilLT__e2Qeyb6jMZyAqV_uBwTBLQJnA72XQa2QJEfE8oioBnYYeEwIPhSVi77KAC83TIqWLPDZtYRPrn8ENdUpcMI2UEqSKWtoickfzs6eZAhAxhSGvCU.9QD6SYyj7.fUFic.tRTA31S9.PMjQZk4A.OZwNxznKynlqYJTe7swRYBHs8m.YZvHDLJMuWk.onmS4VgcTCc9HmXDcXGkaMPkuMy3SADoRWZqA56BF0EtiS3ceF7LUQG6FJk2UaUcQ2gI3K7RJaIBOKya3NlXisQ7od0r0HBzRQlGyV7P3eSeY7i49aPxH730RbO3WwCsYGCDIoEA-- 6. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJPuyXlI4HE.IaHoY70u0eoToerk5gxylTYQ8tbR6Hln9xC6zgk2rFPt2so4f5RP4D94NJ.lTpdwP8HbrUhtVfdCDmTJvPrmrFgb8KwyXezwQf6iIRYSX4FB6uHUSzQtwRucdJB8oCIkgMlKkA.6mR0aVf5oGzKEpQJ4M0VvESxqgdpLTdlfzuvKUbOPPgMiJ9mJLWVpYTN8LwQoR_FU_fsrMTCc9HmXDcXGkaMPkuMy3SADoRWZqA56BF0EtiS3ceF7LUQG6FJk2UaUcQ2gI3K7RJaIBOKya3NlXisQ7od0r0HBzRQlGyV7P3eSeY7i49aPxH730RbO3WwCsYGCDIoEA-- 7. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJPuyXlI4HE.IaHoY70u0eoToerk5gxylTYQ8tbR6Hln9xC6zgk2rFPt2so4f5RP4D94NJ.lTpdwP8HbrUhtVfdCDmTJvPrmrFgb8KwyXezwQf6iIRYSX4FB6uHUSzQtwRucdJB8oCIkgMlKkA.6mR0aVf5oGzKEpQJ4M0VvESxqgdpLTdlfzuvKRZ9bVIn5by2JLWVpYTN8LwQoR_FU_fsrMTCc9HmXDcXGkaMPkuMy3SADoRWZqA56BF0EtiS3ceF7LUQG6FJk2UaUcQ2gI3K7RJaIBOKya3NlXisQ7od0r0HBzRQlGyV7P3eSeY7i49aPxH730RbO3WwCsYGCDIoEA-- 8. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJPuyXlI4HE.IaHoY70u0eoToerk5gxylTYQ8tbR6Hln9xC6zgk2rFPt2so4f5RP4D94NJ.lTpdwP8HbrUhtVfdCDmTJvPrmrFgb8KwyXezwQf6iIRYSX4FB6uHUSzQtwRucdJB8oCIkgMlKkA.6mR0aVf5oGzKEpQJ4M0VvESxqgdpLTdlfzuvKY5WMtv5J2ipJLWVpYTN8LwQoR_FU_fsrMTCc9HmXDcXGkaMPkuMy3SADoRWZqA56BF0EtiS3ceF7LUQG6FJk2UaUcQ2gI3K7RJaIBOKya3NlXisQ7od0r0HBzRQlGyV7P3eSeY7i49aPxH730RbO3WwCsYGCDIoEA-- 9. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJP1LW7_ZkShCSqT_nG0KaU2Fu9y8LKkXJG6_DIwKAvb2d4S9DrtbASNRdv_ySrEESEnmkBz8I52L.A8vM5FmEPDwHInx6wgr.ZfQHH55C4E.CmJaDv1EJ3JFXimJi8gLCQQ4GO3oznBlwZz.aaGcgBk.frWA7n_hpRCjXMYG6QuPQxfyvohxOEcE0lb3ZiyATWO2HsaloD0IMrSU.f8f60qrlR.bqgetOgAUp8L61_NJKKCLTFIdH5GnKVmef.IYIjTtI0s3WvLgV7htxu9rSOVhv2MX6aQcIi 10. https://a.b-io.me/c/Y1lM9w9S1KeLJcXVUarv1OJFNUggPr2joqvuXnfzPULQaWlkIsfqBNRgrwhzFkMcrwIXvcetvsbcR7tgLvKz0RgPBrofYiPk_3ZWLlBbbdRGGX2ItDUODFlrC3s4u25WUcMTbOMU9FXccdqqeLT8WCw_zivbLYA8gsXkVv4pjsmdZK_tM9D5EhKO0XANjTJPXr_iR4rgiLLZkqe6tdPFsJSx1C.jN8WAIo1NPyw6rRkv8PBzYvdlIj10ZWtyfq_GxMJz0eZcNxcaRow_S4zLdIAOhFZmoDnoEXQS2JLdx4XstRAboUmTZRpRxDaAjcrtElogE4rJrc2VeKxDuh3SvQcHNFCUbJXs.d5J5juLj1o.EfvfRFs7dbAKxgYIMigQ
Fixed in GCC 8.