aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2009-04-28 11:48:04 +0200
committerUros Bizjak <uros@gcc.gnu.org>2009-04-28 11:48:04 +0200
commit7a00d767b7c149202d3a8d0600e7384940eec14d (patch)
treeaca22c0249070943f8373f66087cdd3772423aaa /gcc
parent6596e2fe5a8a24d62431577ef3c9c8e67682f9a3 (diff)
downloadgcc-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/ChangeLog40
-rw-r--r--gcc/config/alpha/elf.h18
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/pr39323-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr39323-3.c2
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" } } */