From 5d88d3be0af0c5b33951e71604459599b80d9a76 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 22 Dec 2008 18:49:52 +0100 Subject: [PATCH] re PR target/34571 (Segfault in alpha_expand_mov at -O3) * config/alpha/alpha.h (ASM_OUTPUT_EXTERNAL): New macro. PR target/34571 * config/alpha/predicates.md (symbolic_operand): Return 1 for a label_ref with an offset. From-SVN: r142885 --- gcc/ChangeLog | 16 ++++++++++++---- gcc/config/alpha/elf.h | 10 ++++++++++ gcc/config/alpha/predicates.md | 3 ++- gcc/testsuite/ChangeLog | 4 ++-- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2fefb8075f3..2ab58529a5a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2008-12-22 Uros Bizjak + + * config/alpha/alpha.h (ASM_OUTPUT_EXTERNAL): New macro. + + PR target/34571 + * config/alpha/predicates.md (symbolic_operand): Return 1 for a + label_ref with an offset. + 2008-12-21 Andrew Pinski PR target/38300 @@ -99,8 +107,8 @@ (df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename df_invalidated_by_call to invalidated_by_call_regset. * df.h (df_invalidated_by_call): Remove. - * regclass.c (regs_invalidated_by_call_regset, persistent_obstack): New - variables. + * regclass.c (regs_invalidated_by_call_regset, persistent_obstack): + New variables. (init_reg_sets_1): Initialize regs_invalidated_by_call_regset. (globalize_reg): Likewise. * df-problems.c (df_rd_local_compute, df_lr_confluence_n, @@ -116,8 +124,8 @@ 2008-12-18 Jan Hubicka Kai Tietz - * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current function - ABI. + * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current + function ABI. * i386.c (ix86_call_abi_override): Do not trigger target re-init and do not try to modify call used regs. (ix86_maybe_switch_abi): New function. diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h index f831196f003..6588f7509f8 100644 --- a/gcc/config/alpha/elf.h +++ b/gcc/config/alpha/elf.h @@ -423,3 +423,13 @@ extern int alpha_this_gpdisp_sequence_number; #if defined(HAVE_LD_EH_FRAME_HDR) #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " #endif + +/* A C statement (sans semicolon) to output to the stdio stream STREAM + any text necessary for declaring the name of an external symbol + named NAME which is referenced in this compilation but not defined. + It is needed to properly support non-default visibility. */ + +#ifndef ASM_OUTPUT_EXTERNAL +#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \ + default_elf_asm_output_external (FILE, DECL, NAME) +#endif diff --git a/gcc/config/alpha/predicates.md b/gcc/config/alpha/predicates.md index bc6fc842980..4aa06f4c33a 100644 --- a/gcc/config/alpha/predicates.md +++ b/gcc/config/alpha/predicates.md @@ -390,7 +390,8 @@ (ior (match_code "symbol_ref,label_ref") (and (match_code "const") (match_test "GET_CODE (XEXP (op,0)) == PLUS - && GET_CODE (XEXP (XEXP (op,0), 0)) == SYMBOL_REF + && (GET_CODE (XEXP (XEXP (op,0), 0)) == SYMBOL_REF + || GET_CODE (XEXP (XEXP (op,0), 0)) == LABEL_REF) && GET_CODE (XEXP (XEXP (op,0), 1)) == CONST_INT")))) ;; Return true if OP is valid for 16-bit DTP relative relocations. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2a286d37a8c..7fed67d2970 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -393,8 +393,8 @@ 2008-12-18 Daniel Kraft PR fortran/31822 - * gfortran.dg/char_pointer_assign_2.f90: Updated expected error message - to be more detailed. + * gfortran.dg/char_pointer_assign_2.f90: Updated expected error + message to be more detailed. * gfortran.dg/char_pointer_assign_4.f90: New test. * gfortran.dg/char_pointer_assign_5.f90: New test. -- 2.30.2