Deleted Added
full compact
method.c (225736) method.c (260140)
1/* Handle the hair of processing (but not expanding) inline functions.
2 Also manage function and variable name overloading.
3 Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
4 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5 Contributed by Michael Tiemann (tiemann@cygnus.com)
6
7This file is part of GCC.
8

--- 393 unchanged lines hidden (view full) ---

402 {
403 resolve_unique_section (thunk_fndecl, 0, flag_function_sections);
404
405 /* Output the thunk into the same section as function. */
406 DECL_SECTION_NAME (thunk_fndecl) = DECL_SECTION_NAME (function);
407 }
408 }
409
1/* Handle the hair of processing (but not expanding) inline functions.
2 Also manage function and variable name overloading.
3 Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
4 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5 Contributed by Michael Tiemann (tiemann@cygnus.com)
6
7This file is part of GCC.
8

--- 393 unchanged lines hidden (view full) ---

402 {
403 resolve_unique_section (thunk_fndecl, 0, flag_function_sections);
404
405 /* Output the thunk into the same section as function. */
406 DECL_SECTION_NAME (thunk_fndecl) = DECL_SECTION_NAME (function);
407 }
408 }
409
410 /* The back-end expects DECL_INITIAL to contain a BLOCK, so we
411 create one. */
412 DECL_INITIAL (thunk_fndecl) = make_node (BLOCK);
413
414 /* Set up cloned argument trees for the thunk. */
415 t = NULL_TREE;
416 for (a = DECL_ARGUMENTS (function); a; a = TREE_CHAIN (a))
417 {
418 tree x = copy_node (a);
419 TREE_CHAIN (x) = t;
420 DECL_CONTEXT (x) = thunk_fndecl;
421 SET_DECL_RTL (x, NULL_RTX);
422 DECL_HAS_VALUE_EXPR_P (x) = 0;
423 t = x;
424 }
425 a = nreverse (t);
426 DECL_ARGUMENTS (thunk_fndecl) = a;
410 /* Set up cloned argument trees for the thunk. */
411 t = NULL_TREE;
412 for (a = DECL_ARGUMENTS (function); a; a = TREE_CHAIN (a))
413 {
414 tree x = copy_node (a);
415 TREE_CHAIN (x) = t;
416 DECL_CONTEXT (x) = thunk_fndecl;
417 SET_DECL_RTL (x, NULL_RTX);
418 DECL_HAS_VALUE_EXPR_P (x) = 0;
419 t = x;
420 }
421 a = nreverse (t);
422 DECL_ARGUMENTS (thunk_fndecl) = a;
427 BLOCK_VARS (DECL_INITIAL (thunk_fndecl)) = a;
428
429 if (this_adjusting
430 && targetm.asm_out.can_output_mi_thunk (thunk_fndecl, fixed_offset,
431 virtual_value, alias))
432 {
433 const char *fnname;
423
424 if (this_adjusting
425 && targetm.asm_out.can_output_mi_thunk (thunk_fndecl, fixed_offset,
426 virtual_value, alias))
427 {
428 const char *fnname;
429 tree fn_block;
430
434 current_function_decl = thunk_fndecl;
435 DECL_RESULT (thunk_fndecl)
436 = build_decl (RESULT_DECL, 0, integer_type_node);
437 fnname = XSTR (XEXP (DECL_RTL (thunk_fndecl), 0), 0);
431 current_function_decl = thunk_fndecl;
432 DECL_RESULT (thunk_fndecl)
433 = build_decl (RESULT_DECL, 0, integer_type_node);
434 fnname = XSTR (XEXP (DECL_RTL (thunk_fndecl), 0), 0);
435 /* The back-end expects DECL_INITIAL to contain a BLOCK, so we
436 create one. */
437 fn_block = make_node (BLOCK);
438 BLOCK_VARS (fn_block) = a;
439 DECL_INITIAL (thunk_fndecl) = fn_block;
438 init_function_start (thunk_fndecl);
439 current_function_is_thunk = 1;
440 assemble_start_function (thunk_fndecl, fnname);
441
442 targetm.asm_out.output_mi_thunk (asm_out_file, thunk_fndecl,
443 fixed_offset, virtual_value, alias);
444
445 assemble_end_function (thunk_fndecl, fnname);

--- 747 unchanged lines hidden ---
440 init_function_start (thunk_fndecl);
441 current_function_is_thunk = 1;
442 assemble_start_function (thunk_fndecl, fnname);
443
444 targetm.asm_out.output_mi_thunk (asm_out_file, thunk_fndecl,
445 fixed_offset, virtual_value, alias);
446
447 assemble_end_function (thunk_fndecl, fnname);

--- 747 unchanged lines hidden ---