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
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>
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
25 (store_parm_decls_newstyle): Don't warn omitted parameter name
27 (finish_function): Issue an error if control reaches end of
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.
49 (function_return_type): Likewise.
51 * varasm.c (default_binds_local_p_1): Return false for IFUNC
54 * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Output
55 "gnu_indirect_function" instead of "function" for IFUNC
58 * doc/extend.texi: Document ifunc attribute.