7e9a3ad300
gcc/testsuite/ChangeLog: 2015-12-15 Martin Sebor <msebor@redhat.com> c++/42121 c++/68478 c++/68613 c++/68689 c++/68710 * g++.dg/compat/struct-layout-1_generate.c: Avoid generating further fields after the first flexible array member. * g++.dg/ext/flexary2.C: Expect a sole flexible array member to be rejected. Add a test case exercising zero-length array. * g++.dg/ext/flexary3.C: Expect a sole flexible array member to be rejected. * g++.dg/ext/flexary.h: New file. * g++.dg/ext/flexary4.C: New file. * g++.dg/ext/flexary5.C: New file. * g++.dg/ext/flexary6.C: New file. * g++.dg/ext/flexary7.C: New file. * g++.dg/ext/flexary8.C: New file. * g++.dg/other/dump-ada-spec-2.C: Adjust to reflect flexible array members. * g++.dg/parse/pr43765.C: Add a member to make a struct with a flexible array member valid. Adjust expected error message. * g++.dg/torture/pr64280.C: Expect a sole flexible array member to be rejected. * g++.dg/torture/pr64312.C: Add a member to make a struct with a flexible array member valid. * g++.dg/ubsan/object-size-1.C: Adjust expected diagnostic. gcc/cp/ChangeLog: 2015-12-15 Martin Sebor <msebor@redhat.com> c++/42121 c++/68478 c++/68613 c++/68689 c++/68710 * class.c (walk_subobject_offsets): Avoid assuming type domain is non-null or has an upper bound. (layout_class_type): Include type size in error message. (flexmems_t): New type. (field_nonempty_p, find_flexarrays, diagnose_flexarrays) (check_flexarrays): New functions. (finish_struct_1): Call check_flexarrays. * decl.c (compute_array_index_type): Distinguish flexible array members from zero-length arrays. (grokdeclarator): Reject flexible array members in unions. Avoid rejecting members of incomplete types that are flexible array members. * error.c (dump_type_suffix): Handle flexible array members with null upper bound. * init.c (perform_member_init): Same. * pt.c (instantiate_class_template_1): Allow flexible array members. (tsubst): Handle flexible array members with null upper bound. * typeck2.c (digest_init_r): Warn for initialization of flexible array members. (process_init_constructor_record): Handle flexible array members. gcc/ChangeLog: 2015-12-15 Martin Sebor <msebor@redhat.com> c++/42121 * tree-chkp.c (chkp_find_bound_slots_1): Handle flexible array members. * tree.c (type_contains_placeholder_1): Avoid assuming type has a non-null domain or an upper bound to handle flexible array members. * varasm.c (output_constructor_regular_field): Same. (output_constructor): Set min_index to integer_zero_node rather than null when a type has no domain to avoid crashing later. From-SVN: r231665 |
||
---|---|---|
boehm-gc | ||
config | ||
contrib | ||
fixincludes | ||
gcc | ||
gnattools | ||
gotools | ||
include | ||
INSTALL | ||
intl | ||
libada | ||
libatomic | ||
libbacktrace | ||
libcc1 | ||
libcilkrts | ||
libcpp | ||
libdecnumber | ||
libffi | ||
libgcc | ||
libgfortran | ||
libgo | ||
libgomp | ||
libiberty | ||
libitm | ||
libjava | ||
libmpx | ||
libobjc | ||
liboffloadmic | ||
libquadmath | ||
libsanitizer | ||
libssp | ||
libstdc++-v3 | ||
libvtv | ||
lto-plugin | ||
maintainer-scripts | ||
zlib | ||
.dir-locals.el | ||
.gitignore | ||
ABOUT-NLS | ||
ChangeLog | ||
ChangeLog.jit | ||
ChangeLog.tree-ssa | ||
compile | ||
config-ml.in | ||
config.guess | ||
config.rpath | ||
config.sub | ||
configure | ||
configure.ac | ||
COPYING | ||
COPYING3 | ||
COPYING3.LIB | ||
COPYING.LIB | ||
COPYING.RUNTIME | ||
depcomp | ||
install-sh | ||
libtool-ldflags | ||
libtool.m4 | ||
lt~obsolete.m4 | ||
ltgcc.m4 | ||
ltmain.sh | ||
ltoptions.m4 | ||
ltsugar.m4 | ||
ltversion.m4 | ||
MAINTAINERS | ||
Makefile.def | ||
Makefile.in | ||
Makefile.tpl | ||
missing | ||
mkdep | ||
mkinstalldirs | ||
move-if-change | ||
README | ||
symlink-tree | ||
ylwrap |
This directory contains the GNU Compiler Collection (GCC). The GNU Compiler Collection is free software. See the files whose names start with COPYING for copying permission. The manuals, and some of the runtime libraries, are under different terms; see the individual source files for details. The directory INSTALL contains copies of the installation information as HTML and plain text. The source of this information is gcc/doc/install.texi. The installation information includes details of what is included in the GCC sources and what files GCC installs. See the file gcc/doc/gcc.texi (together with other files that it includes) for usage and porting information. An online readable version of the manual is in the files gcc/doc/gcc.info*. See http://gcc.gnu.org/bugs/ for how to report bugs usefully. Copyright years on GCC source files may be listed using range notation, e.g., 1987-2012, indicating that every year in the range, inclusive, is a copyrightable year that could otherwise be listed individually.