From: Uros Bizjak Date: Tue, 18 Aug 2009 17:50:44 +0000 (+0200) Subject: alpha.c (alpha_output_mi_thunk_osf): Allocate insn locators before emit_insn is called. X-Git-Tag: releases/gcc-4.5.0~3949 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e72cee90d52ac45df305c99894908df0bf4be392;p=thirdparty%2Fgcc.git alpha.c (alpha_output_mi_thunk_osf): Allocate insn locators before emit_insn is called. * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn locators before emit_insn is called. Remove assert that cfun->is_thunk. (alpha_end_function): Clear crtl->emit structure and free insn locators if cfun->is_thunk is true. From-SVN: r150883 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8228ad2a136d..206656d6c0c1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2009-08-18 Uros Bizjak + + * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn + locators before emit_insn is called. Remove assert that + cfun->is_thunk. + (alpha_end_function): Clear crtl->emit structure and free insn + locators if cfun->is_thunk is true. + 2009-08-18 Jason Merrill * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 442dd1713420..e16449188500 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -8615,7 +8615,10 @@ alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED) #if TARGET_ABI_OSF if (cfun->is_thunk) - free_after_compilation (cfun); + { + memset (&crtl->emit, 0, sizeof (struct emit_status)); + insn_locators_free (); + } #endif #if TARGET_ABI_OPEN_VMS @@ -8666,7 +8669,7 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, HOST_WIDE_INT hi, lo; rtx this_rtx, insn, funexp; - gcc_assert (cfun->is_thunk); + insn_locators_alloc (); /* We always require a valid GP. */ emit_insn (gen_prologue_ldgp ()); @@ -8744,7 +8747,6 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, instruction scheduling worth while. Note that use_thunk calls assemble_start_function and assemble_end_function. */ insn = get_insns (); - insn_locators_alloc (); shorten_branches (insn); final_start_function (insn, file, 1); final (insn, file, 1); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f2583ec8929f..a0c52bdd01c1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -42,7 +42,7 @@ 2009-08-17 Uros Bizjak * lib/target-supports.exp - (check_effective_target_vect_cmdline_needed):: Add alpha to the list + (check_effective_target_vect_cmdline_needed): Add alpha to the list of targets that do not need command line argument to enable SIMD. 2009-08-17 Kaveh R. Ghazi