diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2008-12-22 18:49:52 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2008-12-22 18:49:52 +0100 |
commit | 5d88d3be0af0c5b33951e71604459599b80d9a76 (patch) | |
tree | 6abd675d0b8e0b004260ad364566e5940695d4e7 /gcc | |
parent | 82192170e3576ba627a8592079ac0bc4b4d465db (diff) | |
download | gcc-5d88d3be0af0c5b33951e71604459599b80d9a76.zip gcc-5d88d3be0af0c5b33951e71604459599b80d9a76.tar.gz gcc-5d88d3be0af0c5b33951e71604459599b80d9a76.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 16 | ||||
-rw-r--r-- | gcc/config/alpha/elf.h | 10 | ||||
-rw-r--r-- | gcc/config/alpha/predicates.md | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 |
4 files changed, 26 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2fefb80..2ab5852 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2008-12-22 Uros Bizjak <ubizjak@gmail.com> + + * 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 <pinskia@gmail.com> 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 <jh@suse.cz> Kai Tietz <kai.tietz@onevision.com> - * 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 f831196..6588f75 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 bc6fc84..4aa06f4 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 2a286d3..7fed67d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -393,8 +393,8 @@ 2008-12-18 Daniel Kraft <d@domob.eu> 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. |