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/

Reply via email to