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/config | |
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/config')
-rw-r--r-- | gcc/config/alpha/elf.h | 18 |
1 files changed, 10 insertions, 8 deletions
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 |