gcc/gcc/ada
Eric Botcazou e835226bab Fix GIMPLE verification failure in LTO mode on Ada code
The issue is that tree_is_indexable doesn't return the same result for
a FIELD_DECL with QUAL_UNION_TYPE and the QUAL_UNION_TYPE, resulting
in two instances of the QUAL_UNION_TYPE in the bytecode.  The result
for the type is the correct one (false, since it is variably modified)
while the result for the field is falsely true because:

  else if (TREE_CODE (t) == FIELD_DECL
           && lto_variably_modified_type_p (DECL_CONTEXT (t)))
    return false;

is not satisfied.  The reason for this is that the DECL_QUALIFIER of
fields of a QUAL_UNION_TYPE depends on a discriminant in Ada, which
means that the size of the type does too (CONTAINS_PLACEHOLDER_P),
which in turn means that it is reset to a mere PLACEHOLDER_EXPR by
free_lang_data, which finally means that the size of DECL_CONTEXT is
too, so RETURN_TRUE_IF_VAR is false.

In other words, the CONTAINS_PLACEHOLDER_P property of the DECL_QUALIFIER
of fields of a QUAL_UNION_TYPE hides the variably_modified_type_p property
of  these fields, if you look from the outside.

	PR middle-end/93961
	* tree.c (variably_modified_type_p) <RECORD_TYPE>: Recurse into
	fields whose type is a qualified union.
2020-03-11 11:34:25 +01:00
..
doc
gcc-interface Fix internal error on locally-defined subpools 2020-03-11 10:56:10 +01:00
libgnarl
libgnat [Ada] Fix uninitialized out parameter in s-regpat.adb 2019-12-18 07:16:17 +00:00
ada_get_targ.adb
adabkend.adb
adabkend.ads
adadecode.c
adadecode.h
adaint.c
adaint.h
affinity.c
ali-util.adb
ali-util.ads
ali.adb
ali.ads
alloc.ads
argv-lynxos178-raven-cert.c
argv.c
aspects.adb
aspects.ads
atree.adb
atree.ads
atree.h
aux-io.c
back_end.adb
back_end.ads
bcheck.adb
bcheck.ads
binde.adb
binde.ads
binderr.adb
binderr.ads
bindgen.adb
bindgen.ads
bindo-augmentors.adb
bindo-augmentors.ads
bindo-builders.adb
bindo-builders.ads
bindo-diagnostics.adb
bindo-diagnostics.ads
bindo-elaborators.adb
bindo-elaborators.ads
bindo-graphs.adb
bindo-graphs.ads
bindo-units.adb
bindo-units.ads
bindo-validators.adb
bindo-validators.ads
bindo-writers.adb
bindo-writers.ads
bindo.adb
bindo.ads
bindusg.adb
bindusg.ads
butil.adb
butil.ads
cal.c
casing.adb
casing.ads
ceinfo.adb
ChangeLog Fix GIMPLE verification failure in LTO mode on Ada code 2020-03-11 11:34:25 +01:00
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
ChangeLog-2019 gcc.c (process_command): Update copyright notice dates. 2020-01-01 12:14:37 +01:00
ChangeLog.ptr
ChangeLog.tree-ssa
checks.adb
checks.ads
cio.c
clean.adb
clean.ads
comperr.adb
comperr.ads
config-lang.in
contracts.adb
contracts.ads
csets.adb
csets.ads
csinfo.adb
cstand.adb
cstand.ads
cstreams.c
ctrl_c.c
debug_a.adb
debug_a.ads
debug.adb
debug.ads
einfo.adb
einfo.ads
elists.adb
elists.ads
elists.h
env.c
env.h
err_vars.ads
errno.c
errout.adb
errout.ads
erroutc.adb
erroutc.ads
errutil.adb
errutil.ads
eval_fat.adb
eval_fat.ads
exit.c
exp_aggr.adb
exp_aggr.ads
exp_atag.adb
exp_atag.ads
exp_attr.adb
exp_attr.ads
exp_cg.adb
exp_cg.ads
exp_ch2.adb
exp_ch2.ads
exp_ch3.adb
exp_ch3.ads
exp_ch4.adb
exp_ch4.ads
exp_ch5.adb
exp_ch5.ads
exp_ch6.adb
exp_ch6.ads
exp_ch7.adb
exp_ch7.ads
exp_ch8.adb
exp_ch8.ads
exp_ch9.adb
exp_ch9.ads
exp_ch10.ads
exp_ch11.adb
exp_ch11.ads
exp_ch12.adb
exp_ch12.ads
exp_ch13.adb
exp_ch13.ads
exp_code.adb
exp_code.ads
exp_dbug.adb
exp_dbug.ads
exp_disp.adb
exp_disp.ads
exp_dist.adb
exp_dist.ads
exp_fixd.adb
exp_fixd.ads
exp_imgv.adb
exp_imgv.ads
exp_intr.adb
exp_intr.ads
exp_pakd.adb
exp_pakd.ads
exp_prag.adb
exp_prag.ads
exp_sel.adb
exp_sel.ads
exp_smem.adb
exp_smem.ads
exp_spark.adb
exp_spark.ads
exp_strm.adb
exp_strm.ads
exp_tss.adb
exp_tss.ads
exp_unst.adb
exp_unst.ads
exp_util.adb
exp_util.ads
expander.adb
expander.ads
expect.c
fe.h
final.c
fmap.adb
fmap.ads
fname-sf.adb
fname-sf.ads
fname-uf.adb
fname-uf.ads
fname.adb
fname.ads
freeze.adb
freeze.ads
frontend.adb
frontend.ads
get_scos.adb
get_scos.ads
get_targ.adb
get_targ.ads
ghost.adb
ghost.ads
gnat1drv.adb
gnat1drv.ads
gnat_rm.texi gcc.c (process_command): Update copyright notice dates. 2020-01-01 12:14:37 +01:00
gnat_ugn.texi gcc.c (process_command): Update copyright notice dates. 2020-01-01 12:14:37 +01:00
gnat-style.texi
gnatbind.adb
gnatbind.ads
gnatchop.adb
gnatclean.adb
gnatcmd.adb
gnatcmd.ads
gnatdll.adb
gnatfind.adb
gnathtml.pl
gnatkr.adb
gnatkr.ads
gnatlink.adb
gnatlink.ads
gnatls.adb
gnatls.ads
gnatmake.adb
gnatmake.ads
gnatname.adb
gnatname.ads
gnatprep.adb
gnatprep.ads
gnatvsn.adb
gnatvsn.ads * gnatvsn.ads: Bump copyright year. 2020-01-04 08:31:22 +00:00
gnatxref.adb
gprep.adb
gprep.ads
gsocket.h
hostparm.ads
impunit.adb
impunit.ads
indepsw-aix.adb
indepsw-darwin.adb
indepsw-gnu.adb
indepsw.adb
indepsw.ads
init.c
initialize.c
inline.adb
inline.ads
itypes.adb
itypes.ads
krunch.adb
krunch.ads
layout.adb
layout.ads
lib-list.adb
lib-load.adb
lib-load.ads
lib-sort.adb
lib-util.adb
lib-util.ads
lib-writ.adb
lib-writ.ads
lib-xref-spark_specific.adb
lib-xref.adb
lib-xref.ads
lib.adb
lib.ads
link.c
live.adb
live.ads
locales.c
make_util.adb
make_util.ads
Make-generated.in
make.adb
make.ads
Makefile.in
Makefile.rtl
makeusg.adb
makeusg.ads
mdll-fil.adb
mdll-fil.ads
mdll-utl.adb
mdll-utl.ads
mdll.adb
mdll.ads
mingw32.h
mkdir.c
namet-sp.adb
namet-sp.ads
namet.adb
namet.ads
namet.h
nlists.adb
nlists.ads
nlists.h
nmake.adt
opt.adb
opt.ads
osint-b.adb
osint-b.ads
osint-c.adb
osint-c.ads
osint-l.adb
osint-l.ads
osint-m.adb
osint-m.ads
osint.adb
osint.ads
output.adb
output.ads
par_sco.adb
par_sco.ads
par-ch2.adb
par-ch3.adb
par-ch4.adb
par-ch5.adb
par-ch6.adb
par-ch7.adb
par-ch8.adb
par-ch9.adb
par-ch10.adb
par-ch11.adb
par-ch12.adb
par-ch13.adb
par-endh.adb
par-labl.adb
par-load.adb
par-prag.adb
par-sync.adb
par-tchk.adb
par-util.adb
par.adb
par.ads
pprint.adb
pprint.ads
prep.adb
prep.ads
prepcomp.adb
prepcomp.ads
put_scos.adb
put_scos.ads
raise-gcc.c Initialize barrier_cache for ARM EH ABI compliance 2020-02-06 03:59:45 -03:00
raise.c
raise.h
repinfo-input.adb
repinfo-input.ads
repinfo.adb
repinfo.ads
repinfo.h
restrict.adb
restrict.ads
rident.ads
rtfinal.c
rtinit.c
rtsfind.adb
rtsfind.ads
runtime.h
s-oscons-tmplt.c
sa_messages.adb
sa_messages.ads
scans.adb
scans.ads
scil_ll.adb
scil_ll.ads
scn.adb
scn.ads
scng.adb
scng.ads
scos.adb
scos.ads
scos.h
sdefault.ads
seh_init.c
sem_aggr.adb
sem_aggr.ads
sem_attr.adb
sem_attr.ads
sem_aux.adb
sem_aux.ads
sem_case.adb
sem_case.ads
sem_cat.adb
sem_cat.ads
sem_ch2.adb
sem_ch2.ads
sem_ch3.adb
sem_ch3.ads
sem_ch4.adb
sem_ch4.ads
sem_ch5.adb
sem_ch5.ads
sem_ch6.adb [Ada] Missing accessibility check on access discriminants 2019-12-18 07:16:22 +00:00
sem_ch6.ads
sem_ch7.adb
sem_ch7.ads
sem_ch8.adb
sem_ch8.ads
sem_ch9.adb
sem_ch9.ads
sem_ch10.adb
sem_ch10.ads
sem_ch11.adb
sem_ch11.ads
sem_ch12.adb
sem_ch12.ads
sem_ch13.adb
sem_ch13.ads
sem_dim.adb
sem_dim.ads
sem_disp.adb
sem_disp.ads
sem_dist.adb
sem_dist.ads
sem_elab.adb
sem_elab.ads
sem_elim.adb
sem_elim.ads
sem_eval.adb
sem_eval.ads
sem_intr.adb
sem_intr.ads
sem_mech.adb
sem_mech.ads
sem_prag.adb
sem_prag.ads
sem_res.adb
sem_res.ads
sem_scil.adb
sem_scil.ads
sem_smem.adb
sem_smem.ads
sem_type.adb
sem_type.ads
sem_util.adb
sem_util.ads
sem_warn.adb
sem_warn.ads
sem.adb
sem.ads
set_targ.adb
set_targ.ads
sfn_scan.adb
sfn_scan.ads
sigtramp-armdroid.c
sigtramp-ios.c
sigtramp-qnx.c
sigtramp-vxworks-target.inc
sigtramp-vxworks.c
sigtramp.h
sinfo-cn.adb
sinfo-cn.ads
sinfo.adb
sinfo.ads
sinput-c.adb
sinput-c.ads
sinput-d.adb
sinput-d.ads
sinput-l.adb
sinput-l.ads
sinput.adb
sinput.ads
snames.adb-tmpl
snames.ads-tmpl
snames.h-tmpl
socket.c
spark_xrefs.adb
spark_xrefs.ads
sprint.adb
sprint.ads
stand.adb
stand.ads
standard.ads.h
stringt.adb
stringt.ads
stringt.h
style.adb
style.ads
styleg.adb
styleg.ads
stylesw.adb
stylesw.ads
switch-b.adb
switch-b.ads
switch-c.adb
switch-c.ads
switch-m.adb
switch-m.ads
switch.adb
switch.ads
symbols.adb
symbols.ads
sysdep.c
table.adb
table.ads
targext.c
targparm.adb
targparm.ads
tb-gcc.c
tbuild.adb
tbuild.ads
tempdir.adb
tempdir.ads
terminals.c
tracebak.c
tree_gen.adb
tree_gen.ads
tree_in.adb
tree_in.ads
tree_io.adb
tree_io.ads
treepr.adb
treepr.ads
treeprs.adt
ttypes.ads
types.adb
types.ads
types.h
uintp.adb
uintp.ads
uintp.h
uname.adb
uname.ads
urealp.adb
urealp.ads
urealp.h
usage.adb
usage.ads
validsw.adb
validsw.ads
vx_stack_info.c
vxworks-arm-link.spec
vxworks-e500-link.spec
vxworks-ppc-link.spec
vxworks-smp-arm-link.spec
vxworks-smp-e500-link.spec
vxworks-smp-ppc-link.spec
vxworks-smp-x86-link.spec
vxworks-x86-link.spec
warnsw.adb
warnsw.ads
widechar.adb
widechar.ads
xeinfo.adb
xnmake.adb
xoscons.adb
xr_tabls.adb
xr_tabls.ads
xref_lib.adb
xref_lib.ads
xsinfo.adb
xsnamest.adb
xtreeprs.adb
xutil.adb
xutil.ads