On 18 May 2005, Gabriel Dos Reis wrote: > "Joseph S. Myers" <[EMAIL PROTECTED]> writes: > > | On Wed, 18 May 2005, Richard Guenther wrote: > | > | > The following snippet > | > > | > /* Differs from default_conversion by not setting TREE_ADDRESSABLE > | > (because calling an inline function does not mean the function > | > needs to be separately compiled). */ > | > fntype = build_type_variant (TREE_TYPE (function), > | > TREE_READONLY (function), > | > TREE_THIS_VOLATILE (function)); > | > fundecl = function; > | > function = build1 (ADDR_EXPR, build_pointer_type (fntype), > | > function); > | > | If you want to avoid this then you need to arrange for const and noreturn > | attributes on functions always to be represented by qualifiers on the type > | and not on the decl. This is part of bug 3481. > | > | (a) Change handle_noreturn_attribute and handle_const_attribute to put the > | qualifiers on the type in addition to the decl. This might be all you > > if you're doing that and that code at some point would be used by the > C++ front-end, then you need to be very very careful because that is a > very sensitive area for C++ -- especially for the type of address of > functions, template argument deduction and the like.
Yup, I just noticed that trying to fix the bogous INDIRECT_REF created in cp/cvt.c:convert_from_reference :/ Richard. -- Richard Guenther <richard dot guenther at uni-tuebingen dot de> WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/