Go to file
Steve Baird 63585f754c einfo.ads (Extra_Accessibility_Of_Result): New function...
2011-09-06  Steve Baird  <baird@adacore.com>

	* einfo.ads (Extra_Accessibility_Of_Result): New function; in the
	(Ada2012) cases described in AI05-0234 where the accessibility
	level of a function result is "determined by the point of
	call", an implicit parameter representing that accessibility
	level is passed in. Extra_Accessibilty_Of_Result yields this
	additional formal parameter. Extra_Accessibility_Of_Result
	is analogous to the existing Extra_Accessibility
	function used in the implementation of access parameters.
	(Set_Extra_Accessibility_Of_Result): New procedure; sets
	Extra_Accessibility_Of_Result attribute.
	* einfo.adb (Extra_Accessibility_Of_Result): New function.
	(Set_Extra_Accessibility_Of_Result): New procedure.
	(Write_Field19_Name): Display Extra_Accessibilty_Of_Result attribute.
	* sem_util.adb (Dynamic_Accessibility_Level): Set Etype of
	an accessibility level literal to Natural; introduce a nested
	function, Make_Level_Literal, to do this.
	* exp_ch6.ads (Needs_Result_Accessibility_Level): New function;
	determines whether a given function (or access-to-function
	type) needs to have an implicitly-declared accessibility-level
	parameter added to its profile.
	(Add_Extra_Actual_To_Call): Export an existing procedure which was
	previously declared in the body of Exp_Ch6.
	* exp_ch6.adb (Add_Extra_Actual_To_Call): Export declaration by moving
	it to exp_ch6.ads.
	(Has_Unconstrained_Access_Discriminants): New Function; a
	predicate on subtype entities which returns True if the given
	subtype is unconstrained and has one or more access discriminants.
	(Expand_Call): When expanding a call to a function which takes an
	Extra_Accessibility_Of_Result parameter, pass in the appropriate
	actual parameter value. In the case of a function call which is
	used to initialize an allocator, this may not be possible because
	the Etype of the allocator may not have been set yet. In this
	case, we defer passing in the parameter and handle it later in
	Expand_Allocator_Expression.
	(Expand_Simple_Function_Return): When returning from a function which
	returns an unconstrained subtype having at least one access
	discriminant, generate the accessibility check needed to ensure that
	the function result will not outlive any objects designated by its
	discriminants.
	(Needs_Result_Accessibility_Level): New function; see exp_ch6.ads
	description.
	* exp_ch4.adb (Expand_Allocator_Expression): When a function call
	is used to initialize an allocator, we may need to pass in "the
	accessibility level determined by the point of call" (AI05-0234)
	to the function. Expand_Call, where such actual parameters are
	usually generated, is too early in this case because the Etype of
	the allocator (which is used in determining the level to be passed
	in) may not have been set yet when Expand_Call executes. Instead,
	we generate code to pass in the appropriate actual parameter
	in Expand_Allocator_Expression.
	* sem_ch6.adb (Create_Extra_Formals): Create
	the new Extra_Accessibility_Of_Result formal if
	Needs_Result_Accessibility_Level returns True. This includes the
	introduction of a nested procedure, Check_Against_Result_Level.

From-SVN: r178567
2011-09-06 09:46:28 +02:00
boehm-gc configure.ac (THREADS): Remove posix95. 2011-08-08 15:39:35 +00:00
config Centralize PICFLAG configuration 2011-08-22 16:54:02 +00:00
contrib Don't assume hg convert in gcc_update 2011-08-25 09:16:52 +00:00
fixincludes re PR libstdc++/50153 (hppa64-hp-hpux11.11/libstdc++-v3/include/cstdlib:106:11: error: '::abs' has not been declared) 2011-08-23 21:32:34 +00:00
gcc einfo.ads (Extra_Accessibility_Of_Result): New function... 2011-09-06 09:46:28 +02:00
gnattools re PR bootstrap/39150 (Configure scripts have no 64-Bit Solaris defined (only i386-solaris*).) 2011-07-07 09:24:16 +00:00
include system.h [...]: Wrap C function declarations in extern "C". 2011-07-25 14:24:59 +00:00
INSTALL
intl
libada Centralize PICFLAG configuration 2011-08-22 16:54:02 +00:00
libcpp Fix the use of linemap_add and remove unnecessary kludge 2011-08-28 22:14:46 +02:00
libdecnumber remove useless if-before-free tests 2011-04-20 18:19:03 +00:00
libffi re PR libffi/49594 (bootstrap failure in libffi:darwin_closure for powerpc-darwin8) 2011-09-04 19:19:39 +00:00
libgcc sfp-machine.h (ASM_INVALID): New define. 2011-08-23 01:13:57 +02:00
libgfortran bessel_r4.c: Regenerated. 2011-09-01 16:44:16 +00:00
libgo Makefile.in (UNWIND_H): Remove. 2011-08-05 14:37:48 +00:00
libgomp trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL if threadprivate. 2011-08-26 16:55:05 +02:00
libiberty Centralize PICFLAG configuration 2011-08-22 16:54:02 +00:00
libjava jcf-dump.c (print_constant): Cast first frexp arg. 2011-08-10 08:40:17 +00:00
libmudflap re PR middle-end/43513 (The stack pointer is adjusted twice) 2011-07-31 10:02:12 +00:00
libobjc In libobjc/: 2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com> 2011-08-06 14:20:09 +00:00
libquadmath rem_pio2q.c (__quadmath_kernel_rem_pio2): Fix up fq to y conversion for prec 3 and __FLT_EVAL_METHOD__ != 0. 2011-08-01 10:55:33 +02:00
libssp re PR bootstrap/48135 (build fails on Solaris2.8 due to Glob.pm not found within /usr/perl5) 2011-03-21 12:24:17 +00:00
libstdc++-v3 testsuite_allocator.h (tracker_allocator_counter:: allocate): Update allocation count only if allocation succeeded. 2011-09-02 15:54:16 +00:00
lto-plugin re PR bootstrap/49907 (lto-plugin -Wall in stage1) 2011-08-10 08:48:37 +00:00
maintainer-scripts update_version_svn (IGNORE_BRANCHES): Add gcc-4_3-branch. 2011-06-27 11:05:50 +00:00
zlib Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 11:45:53 +00:00
ABOUT-NLS
ChangeLog configure.ac (tic6x-*-*): Remove gdb from noconfigdirs. 2011-08-14 12:25:15 +00:00
ChangeLog.tree-ssa
compile
config-ml.in MAINTAINERS (crx port, [...]): Remove. 2011-03-22 19:58:18 +00:00
config.guess oops - omitted from previous delta. 2011-06-06 10:34:35 +00:00
config.rpath Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 11:45:53 +00:00
config.sub Sync from upstream: 2011-06-06 10:33:11 +00:00
configure configure.ac (tic6x-*-*): Remove gdb from noconfigdirs. 2011-08-14 12:25:15 +00:00
configure.ac configure.ac (tic6x-*-*): Remove gdb from noconfigdirs. 2011-08-14 12:25:15 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4 Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 11:45:53 +00:00
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS * MAINTAINERS (Global Reviewers): Add self. 2011-07-21 15:17:46 +01:00
Makefile.def Makefile.def (language=c++): Add check-c++0x and check-target-libmudflap-c++. 2011-07-16 23:34:13 -04:00
Makefile.in Makefile.tpl (POSTSTAGE1_CONFIGURE_FLAGS): Add libsupc++ to link directories. 2011-07-20 12:08:11 -04:00
Makefile.tpl Makefile.tpl (POSTSTAGE1_CONFIGURE_FLAGS): Add libsupc++ to link directories. 2011-07-20 12:08:11 -04:00
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.