"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.

-- Gaby

Reply via email to