Merged r157428 through r157652 into branch.
[official-gcc.git] / gcc / ChangeLog.ifunc
blobc949b525ebeb10d7911a98db107970f4cc0112f5
1 2009-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3         * ipa-pure-const.c (check_stmt): Revert the last change.
4         (analyze_function):  Skip analysis for indirect function.
6 2009-07-06  H.J. Lu  <hongjiu.lu@intel.com>
8         * ipa-pure-const.c (check_stmt): Properly handle indirect function
9         return.
11 2009-06-28  H.J. Lu  <hongjiu.lu@intel.com>
13         * doc/extend.texi: Update ifunc attribute document.
15 2009-06-28  H.J. Lu  <hongjiu.lu@intel.com>
17         PR c/40528
18         * c-common.c (handle_ifunc_attribute): New.
19         (c_common_attribute_table): Add "ifunc".
21         * c-decl.c (merge_decls): Only allow IFUNC attribute on
22         definition.  Merge the IFUNC information.
23         (start_function): Use function_return_type to get function
24         return type.
25         (store_parm_decls_newstyle): Don't warn omitted parameter name
26         on IFUNC function.
27         (finish_function): Issue an error if control reaches end of
28         IFUNC function.
29         (c_write_global_declarations_1): Add an argument to indicate
30         global scope.  Issue an error for undefined IFUNC function.
31         (c_write_global_declarations): Updated.
33         * c-typeck.c (c_finish_return): Use function_return_type to
34         get function return type.
35         * gimplify.c (gimplify_return_expr): Likewise.
36         * stmt.c (expand_return): Likewise.
38         * cgraphunit.c (cgraph_finalize_function): Don't allow
39         parameter usage in ifunc function.
40         (process_function_and_variable_attributes): Check ifunc attribute.
42         * tree-cfg.c (verify_gimple_return): Use function_return_type
43         to get function return type.
44         (execute_warn_function_return): Issue an error if control
45         reaches end of ifunc function.
47         * tree.h (tree_decl_with_vis): Add ifunc_flag.
48         (DECL_IS_IFUNC): New.
49         (function_return_type): Likewise.
51         * varasm.c (default_binds_local_p_1): Return false for IFUNC
52         function.
54         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Output
55         "gnu_indirect_function" instead of "function" for IFUNC
56         function.
58         * doc/extend.texi: Document ifunc attribute.