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