mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-08 00:21:00 +08:00
GNAT was missing errors as well as issuing messages on legal lines in new ACATS tests for illegal renamings of discriminant-dependent components. Cases that are fixed include object names involving qualified expressions, dereference cases, and generic formal access and formal derived types. Better implements the "known to be constrained" rules in the Ada RM. Tested by new ACATS tests B85100[567] that are soon to be released. 2018-12-03 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * sem_aux.adb (Object_Type_Has_Constrained_Partial_View): Return True for an untagged discriminated formal derived type when referenced within a generic body (augments existing test for formal private types). * sem_util.adb (Is_Dependent_Component_Of_Mutable_Type): If the prefix of the name is a qualified expression, retrieve the operand of that. Add a test of whether the (possible) dereference prefix is a variable, and also test whether that prefix might just be of an access type (occurs in some implicit dereference cases) rather than being an explicit dereference. Retrieve the Original_Node of the object name's main prefix and handle the possibility of that being a qualified expression. Remove special-case code for explicit dereferences that don't come from source. Add test for the renaming not being within a generic body for proper determination of whether a formal access type is known to be constrained (it is within a generic spec, but not in the body). Fix an existing incorrect test for renaming of a discriminant-dependent component of a untagged generic formal type being within a generic body, adding test of taggedness and calling In_Generic_Body (now properly checks for cases where the renaming is in a nongeneric body nested within a generic). Return False in cases where the selector is not a component (or discriminant), which can occur for prefixed-notation calls. From-SVN: r266759
…
…
…
…
…
…
…
…
…
…
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.
Description
Languages
C++
31.9%
C
31.3%
Ada
12%
D
6.5%
Go
6.4%
Other
11.5%