From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18357 invoked by alias); 12 Oct 2012 15:47:34 -0000 Received: (qmail 18327 invoked by uid 48); 12 Oct 2012 15:47:21 -0000 From: "markus at trippelsdorf dot de" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/52844] ICE Date: Fri, 12 Oct 2012 15:47:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: markus at trippelsdorf dot de X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: CC Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-10/txt/msg01201.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D52844 Markus Trippelsdorf changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |markus at trippelsdorf dot | |de --- Comment #3 from Markus Trippelsdorf 201= 2-10-12 15:47:20 UTC --- As Dave said the testcase is invalid: Creduce comes up with: markus@x4 tmp % cat test.ii namespace std { typedef int size_t; templatestruct A; } struct B {}; templatestruct vector_c { typedef vector_c type; }; templatestruct range_c : B {}; templatestruct range_c: vector_c {}; namespace std { templateclass tuple; templatetuple::__type ...>make_tuple(); template auto apply_tuple_(F, std::tuple, vector_c)->decltype(0); template auto apply_tuple(F, std::tuplet) -> decltype(apply_tuple_ (0, t, typename range_c::type())); int x =3D apply_tuple(0, std::make_tuple); } markus@x4 tmp % g++ -std=3Dc++11 -c test.ii test.ii: In substitution of =E2=80=98template decltype (std::apply_tuple_(0, t, typename range_c::type())) std::apply_tuple(F, std::tuple) [with F =3D int; T =3D {}]=E2=80=99: test.ii:27:39: required from here test.ii:26:51: internal compiler error: in unify_one_argument, at cp/pt.c:1= 5162 sizeof ... (T)>::type())); ^ Please submit a full bug report, markus@x4 tmp % clang++ -std=3Dc++11 -c test.ii test.ii:22:30: error: template argument for template type parameter must be= a type vector_c)->decltype(0); ^~~~~~ test.ii:7:16: note: template parameter is declared here templatestruct vector_c ^ test.ii:27:9: error: no matching function for call to 'apply_tuple' int x =3D apply_tuple(0, std::make_tuple); ^~~~~~~~~~~ test.ii:24:8: note: candidate template ignored: substitution failure [with = F =3D int, T =3D <>]: no matching function for call to 'apply_tuple_' auto apply_tuple(F, std::tuplet) ^ 2 errors generated. markus@x4 tmp % icpc -std=3Dc++11 test.ii test.ii(2): warning #910: declaration of "size_t" does not match the expect= ed type "unsigned long" typedef int size_t; ^ test.ii(22): error: constant "Is" is not a type name vector_c)->decltype(0); ^ test.ii(22): error: pack expansion does not make use of any argument packs vector_c)->decltype(0); ^ test.ii(20): warning #2922: constant "Is" cannot be used because it follows= a parameter pack and cannot be deduced from the parameters of function templa= te "std::apply_tuple_" template ^ test.ii(27): error: no instance of function template "std::apply_tuple" mat= ches the argument list argument types are: (int, ) int x =3D apply_tuple(0, std::make_tuple); ^ compilation aborted for test.ii (code 2)