gcc/gcc/config
Jakub Jelinek 89dbf9a5f5 i386: Fix up ix86_gimplify_va_arg [PR105331]
On the following testcase we emit a bogus
'va_arg_tmp.5' may be used uninitialized
warning.  The reason is that when gimplifying the addr = &temp;
statement, the va_arg_tmp temporary var for which we emit ADDR_EXPR
is not TREE_ADDRESSABLE, prepare_gimple_addressable emits some extra
code to initialize the newly addressable var from its previous value,
but it is a new variable which hasn't been initialized yet and will
be later, so we end up initializing it with uninitialized SSA_NAME:
  va_arg_tmp.6 = va_arg_tmp.5_14(D);
  addr.2_16 = &va_arg_tmp.6;
  _17 = MEM[(double *)sse_addr.4_13];
  MEM[(double * {ref-all})addr.2_16] = _17;
and with -O1 we actually don't DSE it before the warning is emitted.
If we make the temp TREE_ADDRESSABLE before the gimplification, then
this prepare_gimple_addressable path isn't taken and we effectively
omit the first statement above and so the bogus warning is gone.

I went through other backends and didn't find another instance of this
problem.

2022-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/105331
	* config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
	temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
	of it.

	* gcc.dg/pr105331.c: New test.
2022-04-28 12:33:59 +02:00
..
aarch64 aarch64: Make sure the UF divides the VF [PR105254] 2022-04-13 17:53:54 +01:00
alpha properly disable -fsplit-stack on non-glibc targets [PR104170] 2022-01-24 11:13:39 +01:00
arc arc: Fix for new ifcvt behavior [PR104154] 2022-03-01 08:51:30 +01:00
arm arm: remove unnecessary armv9-a multilib variant [PR104144] 2022-04-12 10:40:23 +01:00
avr Fix -Wformat-diag in various targets. 2022-01-18 17:25:37 +01:00
bfin [committed] Minor bfin codegen bugfix 2022-04-10 23:02:48 -04:00
bpf bpf: ensure correct string offsets in BTF.ext 2022-01-18 13:20:49 -08:00
c6x Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
cr16 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
cris cris: Reload using special-regs before general-regs 2022-02-02 01:20:06 +01:00
csky Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
epiphany Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
fr30 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
frv Fix -Wformat-diag in various targets. 2022-01-18 17:25:37 +01:00
ft32 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
gcn GCN: Make "gang-private data-share memory exhausted" error more verbose 2022-04-26 21:31:28 +02:00
h8300 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
i386 i386: Fix up ix86_gimplify_va_arg [PR105331] 2022-04-28 12:33:59 +02:00
ia64 Fix -Wformat-diag in various targets. 2022-01-18 17:25:37 +01:00
iq2000 [committed][PR target/104987] Avoid "likely" forms of bbi[n] on iq2000. 2022-04-03 18:24:23 -04:00
lm32 Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
loongarch loongarch: ignore zero-size fields in calling convention 2022-04-28 09:20:40 +08:00
m32c Fix -Wformat-diag in various targets. 2022-01-18 17:25:37 +01:00
m32r Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
m68k Fix -Wformat-diag in various targets. 2022-01-18 17:25:37 +01:00
mcore Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
microblaze Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
mips mips: Fix C++14 vs. C++17 ABI incompatibility on mips64 2022-04-06 22:55:36 +08:00
mmix Fix -Wformat-diag in various targets. 2022-01-18 17:25:37 +01:00
mn10300 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
moxie Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
msp430 MSP430: fix error message. 2022-03-07 11:41:52 +01:00
nds32 nds32: fix -Wformat-diag warning. 2022-01-18 17:25:36 +01:00
nios2 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
nvptx Let nvptx-as figure out the target architecture [PR97348] 2022-04-12 19:02:41 +02:00
or1k gcc: define _REENTRANT for OpenRISC when -pthread is passed 2022-02-02 20:02:59 +09:00
pa Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
pdp11 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
pru Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
riscv RISC-V: Support -misa-spec for arch-canonicalize and multilib-generator. [PR104853] 2022-04-11 22:56:54 +08:00
rl78 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
rs6000 rs6000: Move V2DI vec_neg under power8-vector [PR105271] 2022-04-26 20:41:16 -05:00
rx rx: Fix translation string. 2022-03-07 10:33:57 +01:00
s390 PR102024 - IBM Z: Add psabi diagnostics 2022-04-27 09:22:46 +02:00
sh sh: Fix up __attribute__((optimize ("Os"))) handling on SH [PR105069] 2022-04-06 17:42:07 +02:00
sparc sparc: Preserve ORIGINAL_REGNO in epilogue_renumber [PR105257] 2022-04-19 18:58:59 +02:00
stormy16 Fix -Wformat-diag in various targets. 2022-01-18 17:25:37 +01:00
tilegx Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
tilepro Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
v850 v850: fix typo in pragma name 2022-03-22 13:42:37 +01:00
vax Fix up duplicated duplicated words in comments 2022-03-07 15:00:20 +01:00
visium Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
vms vms: fix -Wformat-diag warnings. 2022-01-18 17:25:37 +01:00
vxworks Include yvals.h for VxWorks < 7 RTPs as well 2021-12-13 13:54:11 +00:00
xtensa xtensa: fix -Wformat-diag warnings. 2022-01-18 17:25:37 +01:00
README
darwin-c.cc Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
darwin-d.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
darwin-driver.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
darwin-f.cc Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
darwin-ppc-ldouble-patch.def Update copyright years. 2022-01-03 10:42:10 +01:00
darwin-protos.h Update copyright years. 2022-01-03 10:42:10 +01:00
darwin-sections.def Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
darwin.cc Darwin: Fix a type mismatch warning for a non-GCC bootstrap compiler. 2022-03-04 16:48:11 +00:00
darwin.h Fix up duplicated duplicated words in comments 2022-03-07 15:00:20 +01:00
darwin.opt Update copyright years. 2022-01-03 10:42:10 +01:00
dbxcoff.h Update copyright years. 2022-01-03 10:42:10 +01:00
dbxelf.h Update copyright years. 2022-01-03 10:42:10 +01:00
default-c.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
default-d.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
dragonfly-d.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
dragonfly-stdint.h Update copyright years. 2022-01-03 10:42:10 +01:00
dragonfly.h Update copyright years. 2022-01-03 10:42:10 +01:00
dragonfly.opt Update copyright years. 2022-01-03 10:42:10 +01:00
elfos.h Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
flat.h Update copyright years. 2022-01-03 10:42:10 +01:00
freebsd-d.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
freebsd-nthr.h Update copyright years. 2022-01-03 10:42:10 +01:00
freebsd-spec.h Update copyright years. 2022-01-03 10:42:10 +01:00
freebsd-stdint.h Update copyright years. 2022-01-03 10:42:10 +01:00
freebsd.h target/89125 - BSD and math functions 2022-04-25 09:25:33 +02:00
freebsd.opt Update copyright years. 2022-01-03 10:42:10 +01:00
fuchsia.h properly disable -fsplit-stack on non-glibc targets [PR104170] 2022-01-24 11:13:39 +01:00
fused-madd.opt Update copyright years. 2022-01-03 10:42:10 +01:00
g.opt Update copyright years. 2022-01-03 10:42:10 +01:00
glibc-c.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
glibc-d.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
glibc-stdint.h properly disable -fsplit-stack on non-glibc targets [PR104170] 2022-01-24 11:13:39 +01:00
gnu-user.h Update copyright years. 2022-01-03 10:42:10 +01:00
gnu-user.opt Update copyright years. 2022-01-03 10:42:10 +01:00
gnu.h Update copyright years. 2022-01-03 10:42:10 +01:00
host-darwin.cc Darwin: Address a translation comment [PR104552]. 2022-03-08 19:29:47 +00:00
host-darwin.h Update copyright years. 2022-01-03 10:42:10 +01:00
host-hpux.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
host-linux.cc LoongArch Port: Machine description C files and .h files. 2022-03-29 17:43:34 +08:00
host-netbsd.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
host-openbsd.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
host-solaris.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
hpux-stdint.h
hpux11.opt Update copyright years. 2022-01-03 10:42:10 +01:00
initfini-array.h Update copyright years. 2022-01-03 10:42:10 +01:00
kfreebsd-gnu.h Update copyright years. 2022-01-03 10:42:10 +01:00
kopensolaris-gnu.h Update copyright years. 2022-01-03 10:42:10 +01:00
linux-android.h Update copyright years. 2022-01-03 10:42:10 +01:00
linux-android.opt Update copyright years. 2022-01-03 10:42:10 +01:00
linux-protos.h Update copyright years. 2022-01-03 10:42:10 +01:00
linux.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
linux.h properly disable -fsplit-stack on non-glibc targets [PR104170] 2022-01-24 11:13:39 +01:00
linux.opt Update copyright years. 2022-01-03 10:42:10 +01:00
lynx.h Update copyright years. 2022-01-03 10:42:10 +01:00
lynx.opt Update copyright years. 2022-01-03 10:42:10 +01:00
netbsd-d.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
netbsd-elf.h Update copyright years. 2022-01-03 10:42:10 +01:00
netbsd-elf.opt Update copyright years. 2022-01-03 10:42:10 +01:00
netbsd-protos.h Update copyright years. 2022-01-03 10:42:10 +01:00
netbsd-stdint.h Update copyright years. 2022-01-03 10:42:10 +01:00
netbsd.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
netbsd.h Update copyright years. 2022-01-03 10:42:10 +01:00
netbsd.opt Update copyright years. 2022-01-03 10:42:10 +01:00
newlib-stdint.h Update copyright years. 2022-01-03 10:42:10 +01:00
openbsd-d.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
openbsd-libpthread.h Update copyright years. 2022-01-03 10:42:10 +01:00
openbsd-stdint.h
openbsd.h Update copyright years. 2022-01-03 10:42:10 +01:00
openbsd.opt Update copyright years. 2022-01-03 10:42:10 +01:00
phoenix.h Update copyright years. 2022-01-03 10:42:10 +01:00
print-sysroot-suffix.sh Update copyright years. 2022-01-03 10:42:10 +01:00
rpath.opt Update copyright years. 2022-01-03 10:42:10 +01:00
rtems.h Update copyright years. 2022-01-03 10:42:10 +01:00
rtems.opt Update copyright years. 2022-01-03 10:42:10 +01:00
sol2-c.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
sol2-clearcap.map
sol2-clearcapv2.map
sol2-cxx.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
sol2-d.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
sol2-protos.h Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
sol2-stubs.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
sol2.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
sol2.h Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
sol2.opt Update copyright years. 2022-01-03 10:42:10 +01:00
t-darwin Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-dragonfly Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-freebsd Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-glibc Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-libunwind Update copyright years. 2022-01-03 10:42:10 +01:00
t-linux Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-lynx Update copyright years. 2022-01-03 10:42:10 +01:00
t-musl
t-netbsd Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-openbsd Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-pnt16-warn Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-rtems
t-slibgcc
t-sol2 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-sysroot-suffix
t-uclibc
t-vxworks Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
t-winnt Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
tm-dwarf2.h
usegas.h Update copyright years. 2022-01-03 10:42:10 +01:00
usegld.h
vx-common.h Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
vxworks-c.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
vxworks-dummy.h Update copyright years. 2022-01-03 10:42:10 +01:00
vxworks-stdint.h Update copyright years. 2022-01-03 10:42:10 +01:00
vxworks.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
vxworks.h Update copyright years. 2022-01-03 10:42:10 +01:00
vxworks.opt Update copyright years. 2022-01-03 10:42:10 +01:00
vxworksae.h Update copyright years. 2022-01-03 10:42:10 +01:00
winnt-c.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
x-cflags-O1
x-darwin Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
x-hpux Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
x-linux Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
x-netbsd Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
x-openbsd Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
x-solaris Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00

README

This directory contains machine-specific files for the GNU C compiler.
It has a subdirectory for each basic CPU type.
The only files in this directory itself
are some .h files that pertain to particular operating systems
and are used for more than one CPU type.