aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.ifunc
blob: c949b525ebeb10d7911a98db107970f4cc0112f5 (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
56
57
58
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-common.c (handle_ifunc_attribute): New.
	(c_common_attribute_table): Add "ifunc".

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