gcc/libgcc/config
Jakub Jelinek 50bc94898f stor-layout: Reject forming arrays with elt sizes not divisible by elt alignment [PR97164]
As mentioned in the PR, since 2005 we reject if array elements are smaller
than their alignment (i.e. overaligned elements), because such arrays don't
make much sense, only their first element is guaranteed to be aligned as
user requested, but the next element can't be.
The following testcases show something we've been silent about but is
equally bad, the 2005 case is just the most common special case of that
the array element size is not divisible by the alignment.  In those arrays
too only the first element is guaranteed to be properly aligned and the
second one can't be.

This patch rejects those cases too, but keeps the existing wording for the
old common case.

Unfortunately, the patch breaks bootstrap, because libbid uses this mess
(forms arrays with 24 byte long elements with 16 byte element alignment).
I don't really see justification for that, so I've decreased the alignment
to 8 bytes instead.

2020-10-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/97164
gcc/
	* stor-layout.c (layout_type): Also reject arrays where element size
	is constant, but not a multiple of element alignment.
gcc/testsuite/
	* c-c++-common/pr97164.c: New test.
	* gcc.c-torture/execute/pr36093.c: Move ...
	* gcc.dg/pr36093.c: ... here.  Add dg-do compile and dg-error
	directives.
	* gcc.c-torture/execute/pr43783.c: Move ...
	* gcc.dg/pr43783.c: ... here.  Add dg-do compile, dg-options and
	dg-error directives.
libgcc/config/libbid/
	* bid_functions.h (UINT192): Decrease alignment to 8 bytes.
2020-10-23 10:07:36 +02:00
..
aarch64 aarch64: Add HF routines to libgcc_s.so 2020-09-28 11:26:53 +01:00
alpha Update copyright years. 2020-01-01 12:51:42 +01:00
arc [ARC] Make libgcc compatible with ARC's reduced register set config. 2020-01-27 14:51:03 +02:00
arm libgcc/config/arm/fp16.c: Make _internal functions static inline 2020-09-17 12:23:36 +00:00
avr Fix typo in ChangeLog 2020-06-24 10:10:56 -04:00
bfin Update copyright years. 2020-01-01 12:51:42 +01:00
bpf GCC port for eBPF 2019-09-09 12:13:23 +02:00
c6x Update copyright years. 2020-01-01 12:51:42 +01:00
cr16 Update copyright years. 2020-01-01 12:51:42 +01:00
cris libgcc: cris: Remove support for crisv32-*-* and cris*-*-linux 2020-05-09 03:00:38 +02:00
csky Update copyright years. 2020-01-01 12:51:42 +01:00
epiphany Update copyright years. 2020-01-01 12:51:42 +01:00
fr30 Update copyright years. 2020-01-01 12:51:42 +01:00
frv Fix libgcc build failure for FRV with recent versions of gas. 2020-02-10 14:12:32 -07:00
ft32 Update copyright years. 2020-01-01 12:51:42 +01:00
gcn [amdgcn] Remove dependency on stdint.h in libgcc 2020-01-10 23:19:41 +00:00
h8300 Update copyright years. 2020-01-01 12:51:42 +01:00
i386 x86: Add <x86gprintrin.h> 2020-10-09 05:08:41 -07:00
ia64 Missing __divtf3@@GCC_4.4.0 on ia64 2020-06-04 09:56:32 +02:00
iq2000 Update copyright years. 2020-01-01 12:51:42 +01:00
libbid stor-layout: Reject forming arrays with elt sizes not divisible by elt alignment [PR97164] 2020-10-23 10:07:36 +02:00
lm32 Update copyright years. 2020-01-01 12:51:42 +01:00
m32c Update copyright years. 2020-01-01 12:51:42 +01:00
m32r Update copyright years. 2020-01-01 12:51:42 +01:00
m68k Update copyright years. 2020-01-01 12:51:42 +01:00
mcore Update copyright years. 2020-01-01 12:51:42 +01:00
microblaze Update copyright years. 2020-01-01 12:51:42 +01:00
mips Emit .note.GNU-stack for hard-float linux targets. 2020-01-23 17:00:03 +01:00
mmix Update copyright years. 2020-01-01 12:51:42 +01:00
moxie Update copyright years. 2020-01-01 12:51:42 +01:00
msp430 MSP430: Simplify and extend shift instruction patterns 2020-08-26 20:50:58 +01:00
nds32 Update copyright years. 2020-01-01 12:51:42 +01:00
nios2 nios2: Support for GOT-relative DW_EH_PE_datarel encoding. 2020-01-31 16:46:50 -08:00
nvptx [nvptx, libgcc] Fix Wbuiltin-declaration-mismatch in atomic.c 2020-09-09 19:22:07 +02:00
or1k Update copyright years. 2020-01-01 12:51:42 +01:00
pa Update copyright years. 2020-01-01 12:51:42 +01:00
pdp11 t-pdp11 (LIB2ADD): Add divmod.c. 2018-11-01 14:36:52 -04:00
pru Update copyright years. 2020-01-01 12:51:42 +01:00
riscv RISC-V/libgcc: Use `-fasynchronous-unwind-tables' for LIB2_DIVMOD_FUNCS 2020-09-29 01:20:01 +01:00
rl78 Update copyright years. 2020-01-01 12:51:42 +01:00
rs6000 [RS6000] Adjust gcc asm for power10 2020-10-01 10:34:48 +09:30
rx Update copyright years. 2020-01-01 12:51:42 +01:00
s390 S/390 zTPF: Handle skip trace addresses when unwinding 2020-04-03 08:46:11 +02:00
score Update copyright years. 2020-01-01 12:51:42 +01:00
sh Update copyright years. 2020-01-01 12:51:42 +01:00
sol2 Update copyright years. 2020-01-01 12:51:42 +01:00
sparc Update copyright years. 2020-01-01 12:51:42 +01:00
stormy16 Update copyright years. 2020-01-01 12:51:42 +01:00
tilegx
tilepro Update copyright years. 2020-01-01 12:51:42 +01:00
v850 Update copyright years. 2020-01-01 12:51:42 +01:00
vax Update copyright years. 2020-01-01 12:51:42 +01:00
visium Update copyright years. 2020-01-01 12:51:42 +01:00
vms Update copyright years. 2020-01-01 12:51:42 +01:00
xtensa xtensa: libgcc: fix PR target/95571 2020-06-08 18:30:07 -07:00
darwin-64.c Update copyright years. 2020-01-01 12:51:42 +01:00
darwin-crt-tm.c Update copyright years. 2020-01-01 12:51:42 +01:00
darwin-crt3.c Update copyright years. 2020-01-01 12:51:42 +01:00
darwin10-unwind-find-enc-func.c Move Darwin10 unwinder fix to a crt shim. 2018-08-22 11:58:43 +00:00
gthr-lynx.h Update copyright years. 2020-01-01 12:51:42 +01:00
gthr-rtems.h Update copyright years. 2020-01-01 12:51:42 +01:00
gthr-vxworks-cond.c Inhibit support for gthread condvars on VxWorks < 6 2020-10-16 16:14:52 +00:00
gthr-vxworks-thread.c Inhibit support for C++0x threads on VxWorks < 6 2020-10-16 16:16:17 +00:00
gthr-vxworks-tls.c Stub out VX_ENTER_TLS_DTOR for VxWorks != 6 2020-10-16 16:14:52 +00:00
gthr-vxworks.c Add missing #include <taskLib.h> in gthr-vxworks.c 2020-10-16 16:14:52 +00:00
gthr-vxworks.h Inhibit support for C++0x threads on VxWorks < 6 2020-10-16 16:16:17 +00:00
hardfp.c Update copyright years. 2020-01-01 12:51:42 +01:00
libgcc-glibc.ver Update copyright years. 2020-01-01 12:51:42 +01:00
libgcc-libsystem.ver
no-sfp-machine.h
no-unwind.h
t-crtfm
t-crtstuff-pic
t-darwin [Darwin] Some TLC for older Darwin versions. 2019-07-03 18:36:28 +00:00
t-dfprules
t-eh-dw2-dip
t-fdpbit
t-fixedpoint-gnu-prefix
t-fpbit
t-freebsd-thread
t-gnu-prefix
t-gthr-noweak musl: Don't use gthr weak refs in libgcc PR91737 2019-11-18 12:08:18 +00:00
t-gthr-vxworks Improve the thread support for VxWorks 2019-11-14 15:58:31 +00:00
t-gthr-vxworksae Update the libgcc support for VxWorks AE/653 2019-11-14 16:00:55 +00:00
t-hardfp Update copyright years. 2020-01-01 12:51:42 +01:00
t-hardfp-sfdf Update copyright years. 2020-01-01 12:51:42 +01:00
t-libgcc-pic
t-libunwind
t-libunwind-elf Update copyright years. 2020-01-01 12:51:42 +01:00
t-linux
t-openbsd-thread
t-rtems
t-slibgcc Update copyright years. 2020-01-01 12:51:42 +01:00
t-slibgcc-darwin
t-slibgcc-elf-ver
t-slibgcc-fuchsia Update copyright years. 2020-01-01 12:51:42 +01:00
t-slibgcc-gld
t-slibgcc-gld-nover
t-slibgcc-hpux
t-slibgcc-libgcc Update copyright years. 2020-01-01 12:51:42 +01:00
t-slibgcc-nolc-override
t-slibgcc-sld Use v2 map syntax in libgcc-unwind.map if Solaris ld supports it 2018-09-18 07:04:15 +00:00
t-slibgcc-vms
t-softfp Update copyright years. 2020-01-01 12:51:42 +01:00
t-softfp-compat
t-softfp-excl
t-softfp-sfdf
t-softfp-sfdftf
t-softfp-tf
t-stack
t-tls
t-vxcrtstuff Fix the vxworks crtstuff handling of kernel/rtp variations 2020-10-16 15:33:35 +00:00
t-vxworks Honor $(MULTISUBDIR) in -I directives for libgcc on VxWorks 2020-10-14 17:38:37 +00:00
t-vxworks7 Honor $(MULTISUBDIR) in -I directives for libgcc on VxWorks 2020-10-14 17:38:37 +00:00
t-vxworksae Update the libgcc support for VxWorks AE/653 2019-11-14 16:00:55 +00:00
unwind-dw2-fde-darwin.c Update copyright years. 2020-01-01 12:51:42 +01:00
vxcache.c Update copyright years. 2020-01-01 12:51:42 +01:00
vxcrtstuff.c Fix typo in macro name guarding conditional in vxcrtstuff.c 2019-12-30 21:11:22 +00:00