diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2009-04-28 11:48:04 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2009-04-28 11:48:04 +0200 |
commit | 7a00d767b7c149202d3a8d0600e7384940eec14d (patch) | |
tree | aca22c0249070943f8373f66087cdd3772423aaa /gcc | |
parent | 6596e2fe5a8a24d62431577ef3c9c8e67682f9a3 (diff) | |
download | gcc-7a00d767b7c149202d3a8d0600e7384940eec14d.zip gcc-7a00d767b7c149202d3a8d0600e7384940eec14d.tar.gz gcc-7a00d767b7c149202d3a8d0600e7384940eec14d.tar.bz2 |
re PR target/39323 (MAX_OFILE_ALIGNMENT in elfos.h is too big)
PR c/39323
* config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
testsuite/ChangeLog:
PR c/39323
* gcc.dg/pr39323-2.c: Also scan for alignment in log2 format.
* gcc.dg/pr39323-3.c: Ditto.
From-SVN: r146881
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 40 | ||||
-rw-r--r-- | gcc/config/alpha/elf.h | 18 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr39323-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr39323-3.c | 2 |
5 files changed, 35 insertions, 33 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 560c03c..ecf5300 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-04-28 Uros Bizjak <ubizjak@gmail.com> + + PR c/39323 + * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h + 2009-04-28 Richard Guenther <rguenther@suse.de> * tree.h (SSA_NAME_VALUE): Remove. @@ -34,7 +39,7 @@ * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and vect_loop_def to vect_external_def and vect_internal_def. (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS - and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and + and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and REPORT_UNVECTORIZED_LOCATIONS. (enum vect_relevant): Update comment. Rename vect_unused_in_loop and vect_used_in_loop and to vect_unused_in_scope and @@ -123,19 +128,16 @@ * hooks.c (hook_int_void_no_regs): Remove function. * hooks.h (hook_int_void_no_regs): Remove declaration. * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode. - * predict.c (combine_predictions_for_insn): Add casts to enum - type. + * predict.c (combine_predictions_for_insn): Add casts to enum type. * real.c (real_arithmetic): Add cast to enum type. (real_compare): Likewise. * target.h (struct gcc_target): Change return type of branch_target_register_class to enum reg_class. * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as default_branch_target_register_class. - * targhooks.c (default_branch_target_register_class): New - function. + * targhooks.c (default_branch_target_register_class): New function. * targhooks.h (default_branch_target_register_class): Declare. - * tree-data-ref.c (print_direction_vector): Add cast to enum - type. + * tree-data-ref.c (print_direction_vector): Add cast to enum type. * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove cast to int. * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to @@ -144,8 +146,7 @@ vect_uninitialized_def. Change 0 to ERROR_MARK. * tree-vect-stmts.c (supportable_widening_operation): Don't initialize icode1 and icode2. - * tree-vectorizer.h (enum vect_def_type): Add - vect_uninitialized_def. + * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def. * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none and to STD_C89. (cmn_err_flag_specs): Change 0 to STD_C89. @@ -171,8 +172,7 @@ casts to enum type. * config/s390/s390.c (s390_tune_flags): Change type to int. (s390_arch_flags): Likewise. - (s390_handle_arch_option): Change flags field of struct pta to - int. + (s390_handle_arch_option): Change flags field of struct pta to int. * config/s390/s390.h (s390_tune_flags): Update declaration. (s390_arch_flags): Likewise. * config/sh/sh.c (prepare_move_operands): Compare @@ -187,10 +187,8 @@ (sh_target_reg_class): Change return type to enum reg_class. * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to PROCESSOR_xxx. - * config/sh/sh-protos.h (tls_symbolic_operand): Update - declaration. - * config/sparc/sparc.c (sparc_override_options): Add cast to enum - type. + * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration. + * config/sparc/sparc.c (sparc_override_options): Add cast to enum type. * config/sparc/sparc.md (empty_delay_slot): Return enum constant. (pic, calls_alloca, calls_eh_return, leaf_function): Likewise. (delayed_branch, tls_call_delay): Likewise. @@ -210,16 +208,13 @@ * doc/c-tree.texi (Types, Functions, Expression trees): Fix grammar nits. - * doc/cfg.texi (Maintaining the CFG, Liveness information): - Likewise. + * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise. * doc/cpp.texi (Standard Predefined Macros) (Implementation-defined behavior): Likewise. - * doc/extend.texi (Function Attributes, Type Attributes): - Likewise. + * doc/extend.texi (Function Attributes, Type Attributes): Likewise. * doc/gimple.texi (GIMPLE Exception Handling) (@code{GIMPLE_ASSIGN}): Likewise. - * doc/install.texi (Prerequisites, Configuration, Specific): - Likewise. + * doc/install.texi (Prerequisites, Configuration, Specific): Likewise. * doc/invoke.texi (Warning Options, Optimize Options) (AVR Options, Darwin Options): Likewise. (Optimize Options): Reformulate -fwhole-program description. @@ -247,8 +242,7 @@ (exp2_immediate_p, spu_gen_exp2): Define. * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0, spu_convtf_1): Update parameter descriptions. - * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): - Update. + * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update. * constraints.md ('v', 'w'): New. * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU): Remove. diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h index 0e5265c..24ab5f6 100644 --- a/gcc/config/alpha/elf.h +++ b/gcc/config/alpha/elf.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for DEC Alpha w/ELF. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2007, 2008 - Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2007, 2008, + 2009 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu). This file is part of GCC. @@ -142,18 +142,20 @@ do { \ ASM_OUTPUT_ALIGNED_LOCAL (FILE, NAME, SIZE, ALIGN); \ } while (0) -/* Biggest alignment supported by the object file format of this - machine. Use this macro to limit the alignment which can be - specified using the `__attribute__ ((aligned (N)))' construct. If - not defined, the default value is `BIGGEST_ALIGNMENT'. +/* The biggest alignment supported by ELF in bits. 32-bit ELF + supports section alignment up to (0x80000000 * 8), while + 64-bit ELF supports (0x8000000000000000 * 8). If this macro + is not defined, the default is the largest alignment supported + by 32-bit ELF and representable on a 32-bit host. Use this + macro to limit the alignment which can be specified using + the `__attribute__ ((aligned (N)))' construct. This value is really 2^63. Since gcc figures the alignment in bits, we could only potentially get to 2^60 on suitable hosts. Due to other considerations in varasm, we must restrict this to what fits in an int. */ #undef MAX_OFILE_ALIGNMENT -#define MAX_OFILE_ALIGNMENT \ - (1 << (HOST_BITS_PER_INT < 64 ? HOST_BITS_PER_INT - 2 : 62)) +#define MAX_OFILE_ALIGNMENT (((unsigned int) 1 << 28) * 8) /* This is the pseudo-op used to generate a contiguous sequence of byte values from a double-quoted string WITHOUT HAVING A TERMINATING NUL diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5415592..79a0679 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2009-04-28 Uros Bizjak <ubizjak@gmail.com> + + PR c/39323 + * gcc.dg/pr39323-2.c: Also scan for alignment in log2 format. + * gcc.dg/pr39323-3.c: Ditto. + 2009-04-28 Janus Weil <janus@gcc.gnu.org> PR fortran/39930 diff --git a/gcc/testsuite/gcc.dg/pr39323-2.c b/gcc/testsuite/gcc.dg/pr39323-2.c index 2eaa6e9..9304c74 100644 --- a/gcc/testsuite/gcc.dg/pr39323-2.c +++ b/gcc/testsuite/gcc.dg/pr39323-2.c @@ -3,4 +3,4 @@ int bar __attribute__ ((aligned(1 << 28))) = 20; -/* { dg-final { scan-assembler "\.align\[\\t \]*268435456" } } */ +/* { dg-final { scan-assembler ".align\[ \t\]+(268435456|28)\[ \t\]*\n" } } */ diff --git a/gcc/testsuite/gcc.dg/pr39323-3.c b/gcc/testsuite/gcc.dg/pr39323-3.c index cbfed9d..c045f17 100644 --- a/gcc/testsuite/gcc.dg/pr39323-3.c +++ b/gcc/testsuite/gcc.dg/pr39323-3.c @@ -4,4 +4,4 @@ typedef int __attribute__ ((aligned(1 << 28))) int28; int28 foo = 20; -/* { dg-final { scan-assembler "\.align\[\\t \]*268435456" } } */ +/* { dg-final { scan-assembler ".align\[ \t\]+(268435456|28)\[ \t\]*\n" } } */ |