public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/54542] New: SFINAE bug: handling new expressions @ 2012-09-10 17:27 tsoae at mail dot ru 2012-09-10 22:42 ` [Bug c++/54542] " paolo.carlini at oracle dot com ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: tsoae at mail dot ru @ 2012-09-10 17:27 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54542 Bug #: 54542 Summary: SFINAE bug: handling new expressions Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned@gcc.gnu.org ReportedBy: tsoae@mail.ru g++ 4.8.0 20120909 (experimental) fails to compile the following well-defined code: template <class T> void f(decltype(new T(1, 2)) *) { T(1, 2); } template <class T> void f(...) {} int main() { f<int>(0); } COLLECT_GCC_OPTIONS='-v' '-std=c++11' '-shared-libgcc' '-mtune=generic' '-march=pentiumpro' test.cpp: In substitution of ‘template<class T> void f(decltype (new T)*) [with T = <missing>]’: test.cpp:12:17: required from here test.cpp:2:14: error: new initializer expression list treated as compound expression [-fpermissive] void f(decltype(new T(1, 2)) *) ^ test.cpp: In substitution of ‘template<class T> void f(decltype (new T)*) [with T = int]’: test.cpp:12:17: required from here test.cpp:2:14: error: new initializer expression list treated as compound expression [-fpermissive] test.cpp:2:38: error: new initializer expression list treated as compound expression [-fpermissive] void f(decltype(new T(1, 2)) *) ^ ‘ Internal compiler error: Error reporting routines re-entered. Compiler version info: Target: i686-pc-linux-gnu Configured with: ../configure --prefix=../target --enable-languages=c,c++ Thread model: posix GNU C++ (GCC) version 4.8.0 20120909 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 4.8.0 20120909 (experimental), GMP version 5.0.2, MPFR version 3.1.0, MPC version 0.8.2 Explanation: When T is int, the new-expression is ill-formed and the error occurs in immediate context, so the former f should be excluded from the set of candidate functions due to substitution failure. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/54542] SFINAE bug: handling new expressions 2012-09-10 17:27 [Bug c++/54542] New: SFINAE bug: handling new expressions tsoae at mail dot ru @ 2012-09-10 22:42 ` paolo.carlini at oracle dot com 2012-09-11 1:05 ` paolo at gcc dot gnu.org 2012-09-11 1:08 ` paolo.carlini at oracle dot com 2 siblings, 0 replies; 4+ messages in thread From: paolo.carlini at oracle dot com @ 2012-09-10 22:42 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54542 Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2012-09-10 AssignedTo|unassigned at gcc dot |paolo.carlini at oracle dot |gnu.org |com Target Milestone|--- |4.8.0 Ever Confirmed|0 |1 --- Comment #1 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-09-10 22:42:31 UTC --- On it. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/54542] SFINAE bug: handling new expressions 2012-09-10 17:27 [Bug c++/54542] New: SFINAE bug: handling new expressions tsoae at mail dot ru 2012-09-10 22:42 ` [Bug c++/54542] " paolo.carlini at oracle dot com @ 2012-09-11 1:05 ` paolo at gcc dot gnu.org 2012-09-11 1:08 ` paolo.carlini at oracle dot com 2 siblings, 0 replies; 4+ messages in thread From: paolo at gcc dot gnu.org @ 2012-09-11 1:05 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54542 --- Comment #2 from paolo at gcc dot gnu.org <paolo at gcc dot gnu.org> 2012-09-11 01:05:21 UTC --- Author: paolo Date: Tue Sep 11 01:05:12 2012 New Revision: 191170 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191170 Log: /cp 2012-09-10 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54541 PR c++/54542 * call.c (build_cxx_call): Add tsubst_flags_t parameter, use require_complete_type_sfinae. (build_op_delete_call, build_over_call): Adjust. * typeck.c (build_x_compound_expr_from_vec): Add tsubst_flags_t parameter. (cp_build_function_call_vec): Adjust. * init.c (build_new_1): Likewise. * rtti.c (throw_bad_cast, throw_bad_typeid, build_dynamic_cast_1): Likewise. * optimize.c (build_delete_destructor_body): Likewise. * cp-tree.h: Adjust declarations. * call.c (convert_arg_to_ellipsis): Use require_complete_type_sfinae. /testsuite 2012-09-10 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54541 PR c++/54542 * g++.dg/cpp0x/sfinae40.C: New. * g++.dg/cpp0x/sfinae41.C: Likewise. Added: trunk/gcc/testsuite/g++.dg/cpp0x/sfinae40.C trunk/gcc/testsuite/g++.dg/cpp0x/sfinae41.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/init.c trunk/gcc/cp/optimize.c trunk/gcc/cp/rtti.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/54542] SFINAE bug: handling new expressions 2012-09-10 17:27 [Bug c++/54542] New: SFINAE bug: handling new expressions tsoae at mail dot ru 2012-09-10 22:42 ` [Bug c++/54542] " paolo.carlini at oracle dot com 2012-09-11 1:05 ` paolo at gcc dot gnu.org @ 2012-09-11 1:08 ` paolo.carlini at oracle dot com 2 siblings, 0 replies; 4+ messages in thread From: paolo.carlini at oracle dot com @ 2012-09-11 1:08 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54542 Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED --- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-09-11 01:08:13 UTC --- Fixed. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-09-11 1:08 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-09-10 17:27 [Bug c++/54542] New: SFINAE bug: handling new expressions tsoae at mail dot ru 2012-09-10 22:42 ` [Bug c++/54542] " paolo.carlini at oracle dot com 2012-09-11 1:05 ` paolo at gcc dot gnu.org 2012-09-11 1:08 ` paolo.carlini at oracle dot com
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).