From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25221 invoked by alias); 25 Jan 2008 09:50:59 -0000 Received: (qmail 25039 invoked by uid 48); 25 Jan 2008 09:50:16 -0000 Date: Fri, 25 Jan 2008 09:54:00 -0000 Message-ID: <20080125095016.25038.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/34950] [4.2/4.3 Regression] ICE in svn boost math toolkit In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" 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: 2008-01/txt/msg03011.txt.bz2 ------- Comment #8 from rguenth at gcc dot gnu dot org 2008-01-25 09:50 ------- EDG accepts this one where we still ICE the same: struct default_policy {}; template struct policy { typedef int precision_type; }; template struct precision { typedef Real type; typedef typename Policy::precision_type precision_type; }; template struct bessel_traits { typedef T1 result_type; typedef typename precision::type precision_type; }; template void def(char const* name, Fn fn); template typename bessel_traits::result_type cyl_bessel_j(T1 v, T2 x, const Policy& pol); template typename bessel_traits >::result_type cyl_bessel_j(T1 v, T2 x); void hedge_expose_polynomial() { def("cyl_bessel_j", cyl_bessel_j); } 3.3 rejects this with t.ii: In function `void hedge_expose_polynomial()': t.ii:31: error: no matching function for call to `def(const char[13], )' 4.1 rejects it with t.ii: In instantiation of 'precision': t.ii:14: instantiated from 'bessel_traits' t.ii:31: instantiated from here t.ii:9: error: no type named 'precision_type' in 'Policy' t.ii: In function 'void hedge_expose_polynomial()': t.ii:31: error: no matching function for call to 'def(const char [13], )' and 4.2 and 4.3 ICE. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34950