Tobias Burnus [Fri, 25 Nov 2011 16:26:47 +0000 (17:26 +0100)]
re PR fortran/50408 (ICE in transfer_expr)
2011-11-25 Tobias Burnus <burnus@net-b.de>
PR fortran/50408
* trans-decl.c (gfc_get_module_backend_decl): Also copy
ts.u.derived from the gsym if the ts.type is BT_CLASS.
(gfc_get_extern_function_decl): Copy also the backend_decl
for the symbol's ts.u.{derived,cl} from the gsym.
* trans-types.c (gfc_copy_dt_decls_ifequal): Directly
return if "from" and "to" are the same.
Andrew MacLeod [Fri, 25 Nov 2011 13:35:13 +0000 (13:35 +0000)]
re PR other/51011 (FAIL: gcc.dg/atomic-generic.c (test for excess errors))
2011-11-24 Andrew MacLeod <amacleod@redhat.com>
PR other/51011
* tree.h (is_builtin_name): No longer external.
* builtins.c (is_builtin_name): Make static.
* varasm.c (incorporeal_function_p): __sync and __atomic external calls
are not incorporeal and may need asm label processing.
Georg-Johann Lay [Fri, 25 Nov 2011 10:46:10 +0000 (10:46 +0000)]
re PR target/50566 ([avr]: Add support for better logging similar to -mdeb)
PR target/50566
* config/avr/avr-protos.h (avr_log_t): Add field .builtin.
* config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
Don't bypass TARGET_ALL_DEBUG. Print self-info with ?.
(avr_log_vadump): Support %D and %X to print double_int.
(avr_double_int_pop_digit): New static function.
(avr_dump_double_int_hex): New static function.
Andrew MacLeod [Thu, 24 Nov 2011 23:14:31 +0000 (23:14 +0000)]
optab.c (maybe_emit_atomic_exchange): New.
2011-11-24 Andrew MacLeod <amacleod@redhat.com>
* optab.c (maybe_emit_atomic_exchange): New. Try to emit an
atomic_exchange pattern.
(maybe_emit_sync_lock_test_and_set): New. Try to emit an exchange
using __sync_lock_test_and_set.
(maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
exchange using a compare_and_swap loop.
(expand_sync_lock_test_and_set): New. Expand sync_lock_test_and_set.
(expand_atomic_test_and_set): New. Expand test_and_set operation.
(expand_atomic_exchange): Use new maybe_emit_* functions.
(expand_atomic_store): Use new maybe_emit_* functions.
* builtins.c (expand_builtin_sync_lock_test_and_set): Call
expand_sync_lock_test_and_set routine.
(expand_builtin_atomic_exchange): Remove parameter from call.
(expand_builtin_atomic_clear): Use atomic_clear pattern if present.
(expand_builtin_atomic_test_and_set): Add target and simply call
expand_atomic_test_and_set.
(expand_builtin): Add target to expand_builtin_atomic_test_and_set.
* expr.h (expand_atomic_exchange): Add parameter.
(expand_sync_lock_test_and_set): New prototype.
(expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
Tobias Burnus [Thu, 24 Nov 2011 17:57:41 +0000 (18:57 +0100)]
re PR fortran/51218 (Potential optimization bug due to implicit_pure?)
2011-11-24 Tobias Burnus <burnus@net-b.de>
PR fortran/51218
* resolve.c (pure_subroutine): If called subroutine is
impure, unset implicit_pure.
(resolve_function): Move impure check to simplify code.
Jakub Jelinek [Thu, 24 Nov 2011 15:23:18 +0000 (16:23 +0100)]
re PR rtl-optimization/50290 (ICE: in distribute_notes, at combine.c:13282 with -O2 -fwhole-program -fno-tree-loop-optimize -fno-tree-vrp -funroll-loops)
PR rtl-optimization/50290
* gcc.dg/pr50290.c: New test.
François Dumont [Wed, 23 Nov 2011 20:30:18 +0000 (20:30 +0000)]
re PR libstdc++/41975 ([C++0x] [DR579] unordered_set::erase performs worse when nearly empty)
2011-11-23 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/41975
* include/bits/hashtable.h (_Hashtable<>): Major data model
modification to limit performance impact of empty buckets in
erase(iterator) implementation.
* include/bits/hashtable_policy.h (_Hashtable_iterator,
_Hashtable_const_iterator): Remove not used anymore.
* include/bits/hashtable_policy.h (_Prime_rehash_policy): Remove
_M_grow_factor, just use natural evolution of prime numbers. Add
_M_prev_size to know when the number of buckets can be reduced.
* include/bits/unordered_set.h (__unordered_set<>,
__unordered_multiset<>), unordered_map.h (__unordered_map<>,
__unordered_multimap<>): Change default value of cache hash code
template parameter, false for integral types with noexcept hash
functor, true otherwise.
* include/debug/unordered_map, unordered_set: Adapt transformation
from iterator/const_iterator to respectively
local_iterator/const_local_iterator.
* testsuite/performance/23_containers/copy_construct/unordered_set.cc:
New.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: New.
* testsuite/23_containers/unordered_set/hash_policy/rehash.cc: New.
* testsuite/23_containers/unordered_multiset/cons/copy.cc: New.
* testsuite/23_containers/unordered_multiset/erase/1.cc,
24061-multiset.cc: Add checks on the number of bucket elements.
* testsuite/23_containers/unordered_multiset/insert/multiset_range.cc,
multiset_single.cc, multiset_single_move.cc: Likewise.
Arnaud Charlet [Wed, 23 Nov 2011 13:51:23 +0000 (14:51 +0100)]
[multiple changes]
2011-11-23 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_All_Ent): An incomplete type is not
frozen by a subprogram body that does not come from source.
2011-11-23 Pascal Obry <obry@adacore.com>
* s-oscons-tmplt.c: Add PTY_Library constant. It contains
the library for pseudo terminal support.
* g-exptty.ads: Add pseudo-terminal library into a Linker_Options
pragma.
2011-11-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch9.adb: No check on entry family index if generic.
2011-11-23 Thomas Quinot <quinot@adacore.com>
* sem_ch9.adb, s-taprop.ads, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
s-taprop-posix.adb, s-taprop-rtx.adb, s-taprop-solaris.adb,
s-taprop-tru64.adb, s-taprop-vxworks.adb: Move dependency on
System.OS_Constants from shared spec of
System.Tasking.Primitive_Operations to the specific body variants
that really require this dependency.
2011-11-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Subprogram_Renaming_Declaration):
If the declaration has aspects, analyze them so they can be
properly rejected.
* a-comutr.adb, a-coorma.adb, a-coorse.adb, a-convec.adb, a-cihase.adb,
a-cimutr.adb, a-coinve.adb, a-ciorma.adb, a-ciorse.adb, a-cobove.adb,
a-cohama.adb, a-cihama.adb, a-cidlli.adb, a-cdlili.adb, a-cbhama.adb,
a-cbhase.adb, a-cbmutr.adb, a-cborma.adb, a-cborse.adb, a-cbdlli.adb:
Add with and use clause for Ada.Finalization. Type
Iterator and Child_Iterator are now derived from Limited_Controlled.
(Finalize): New routine.
(Iterate): Add a renaming of counter Busy and
increment it. Update the return aggregate.
(Iterate_Children): Add a renaming of
counter Busy and increment it. Update the return aggregate.
(Iterate_Subtree): Add a renaming of counter Busy and increment
it. Update the return aggregate.
* a-cdlili.ads, a-cidlli.ads: Type List_Access is now a general access
type.
* a-cihama.ads: Type Map_Access is now a general access type.
* a-comutr.ads, a-cimutr.ads: Use type Natural for the two locks
associated with the tree.
* a-cohama.ads: Type Map_Access is now a general access type.
* a-coinve.ads, a-convec.ads: Type Vector_Access is now a general
access type.
* exp_ch5.adb (Expand_Iterator_Loop): Do not create a block
to wrap the loop as this is done at an earlier step, during
analysis. The declarations of the iterator and the cursor use
the usual Insert_Action mechanism when added into the tree.
* sem_ch5.adb (Analyze_Loop_Statement): Remove local constant
Loop_Statement and replace all respective uses by N. Add local
constant Loc. Preanalyze the loop iterator to discover whether
it is a container iterator and if it is, wrap the loop in a
block. This ensures that any controlled temporaries produced
by the iteration scheme share the same lifetime of the loop.
(Is_Container_Iterator): New routine.
(Is_Wrapped_In_Block): New routine.
(Pre_Analyze_Range): Move spec and body to the library level.
* gnat_ugn.texi, vms_data.ads: Add documentation for new gnatpp option
that controls casing of type and subtype names.
2011-11-23 Yannick Moy <moy@adacore.com>
* sem_ch3.adb: Minor addition of comments.
2011-11-23 Thomas Quinot <quinot@adacore.com>
* prj-part.adb (Extension_Withs): New global variable,
contains the head of the list of WITH clauses from the EXTENDS
ALL projects for which virtual packages are being created.
(Look_For_Virtual_Projects_For): When recursing through
an EXTENDS ALL, add the WITH clauses of the extending
project to Extension_Withs. When adding a project to the
Virtual_Hash, record the associated Extension_Withs list.
(Create_Virtual_Extending_Project): Add a copy of the appropriate
Extension_Withs to the virtual project.
2011-11-23 Thomas Quinot <quinot@adacore.com>
* mlib-tgt-specific-vxworks.adb: Minor reformatting.
2011-11-23 Thomas Quinot <quinot@adacore.com>
* Make-generated.in (Sdefault.Target_Name): Set to
$(target_noncanonical) instead of $(target) for consistency.
Matthew Heaney [Wed, 23 Nov 2011 13:36:40 +0000 (13:36 +0000)]
a-cdlili.adb, [...] (Iterator): Declared Iterator type as limited (First...
2011-11-23 Matthew Heaney <heaney@adacore.com>
* a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Iterator): Declared
Iterator type as limited (First, Last): Cursor return value
depends on iterator node value (Iterate): Use start position as
iterator node value (Next, Previous): Forward to corresponding
cursor-based operation.
Arnaud Charlet [Wed, 23 Nov 2011 13:32:44 +0000 (14:32 +0100)]
[multiple changes]
2011-11-23 Matthew Heaney <heaney@adacore.com>
* a-coorse.ads, a-ciorse.ads, a-cborse.ads (Set_Iterator_Interfaces):
Renamed from Ordered_Set_Iterator_Interfaces.
* a-coorse.adb, a-ciorse.adb, a-cborse.adb (Iterator): Declared
Iterator type as limited (First, Last): Cursor return value
depends on iterator node value (Iterate): Use start position as
iterator node value (Next, Previous): Forward to corresponding
cursor-based operation.
* a-cohase.ads, a-cohase.adb: Implemented forward iterator.
* a-cihase.adb, a-cbhase.adb (Iterator): Removed unnecessary
node component (First, Next): Forward call to corresponding
cursor-based operation (Iterate): Representation of iterator no
longer has node component
* exp_intr.adb (Expand_Unc_Deallocation): Ensure that the
dereference has a proper type before the side effect removal
mechanism kicks in.
* sem_ch3.adb (Analyze_Subtype_Declaration): Handle a rare case
where the base type of the subtype is a private itype created
to act as the partial view of a constrained record type. This
scenario manifests with equivalent class-wide types for records
with unknown discriminants.
2011-11-23 Jerome Guitton <guitton@adacore.com>
* s-osprim-vxworks.adb (Clock): Use Clock_RT_Ada.
2011-11-23 Thomas Quinot <quinot@adacore.com>
* s-oscons-tmplt.c: Fix unbalanced preprocessor directives Minor
reformatting/reorganization.
Arnaud Charlet [Wed, 23 Nov 2011 11:24:48 +0000 (12:24 +0100)]
[multiple changes]
2011-11-23 Robert Dewar <dewar@adacore.com>
* sem_ch9.adb (Analyze_Entry_Declaration): Check for entry
family bounds out of range.
2011-11-23 Matthew Heaney <heaney@adacore.com>
* a-cohama.adb, a-cihama.adb, a-cbhama.adb (Iterator): Declare
type as limited, and remove node component.
(First, Next): Forward call to corresponding cursor-based operation.
(Iterate): Representation of iterator no longer has node component.
2011-11-23 Yannick Moy <moy@adacore.com>
* exp_util.adb: Revert previous change to remove side-effects in Alfa
mode, which is not the correct thing to do for renamings.
2011-11-23 Thomas Quinot <quinot@adacore.com>
* s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taprop-tru64.adb,
s-osinte-vxworks.ads, s-osinte-aix.ads, s-osinte-lynxos.ads,
s-osinte-solaris-posix.ads, s-taprop-solaris.adb, a-exetim-posix.adb,
s-osinte-irix.ads, s-osinte-solaris.ads, s-oscons-tmplt.c,
s-taprop-irix.adb, s-osinte-hpux-dce.ads, Makefile.rtl,
s-osinte-tru64.ads, s-osinte-darwin.ads, s-taprop.ads,
s-osinte-freebsd.ads, s-osinte-lynxos-3.ads, s-taprop-hpux-dce.adb,
s-taprop-posix.adb: Remove hard-coded clock ids;
instead, generate them in System.OS_Constants.
(System.OS_Constants.CLOCK_RT_Ada): New constant denoting the
id of the clock providing Ada.Real_Time.Monotonic_Clock.
* thread.c: New file.
(__gnat_pthread_condattr_setup): New function. For platforms where
CLOCK_RT_Ada is not CLOCK_REALTIME, set appropriate condition
variable attribute.
2011-11-23 Yannick Moy <moy@adacore.com>
* sem_ch3.adb: Restore the use of Expander_Active instead of
Full_Expander_Active, so that the evaluation is forced in Alfa
mode too. Otherwise, we end up with an unexpected insertion in a
place where it is not supposed to happen, on default parameters
of a call.
2011-11-23 Thomas Quinot <quinot@adacore.com>
* prj-pp.adb, prj-pp.ads: Minor new addition: wrapper procedure "wpr"
for Pretty_Print, for use from within gdb.
Arnaud Charlet [Wed, 23 Nov 2011 11:04:39 +0000 (12:04 +0100)]
[multiple changes]
2011-11-23 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop): Wrap the expanded loop
and the cursor declarations in a block, so that the loop variable
is local to the construct.
2011-11-23 Matthew Heaney <heaney@adacore.com>
* a-coorma.ads, a-ciorma.ads, a-cborma.ads (Iterate): Returns
type Reversible_Iterator'Class.
* a-coorma.adb, a-ciorma.adb, a-cborma.adb (Iterator):
Declare type as limited.
(First, Last): Return value depends on iterator's start node value.
(Next, Previous): Call corresponding Cursor-based operation.
(Iterate): Indicate whether complete or partial iteration
Robert Dewar [Wed, 23 Nov 2011 11:02:03 +0000 (11:02 +0000)]
errout.adb: Minor reformattin (Finalize): Take templates into account for warning suppression.
2011-11-23 Robert Dewar <dewar@adacore.com>
* errout.adb: Minor reformattin (Finalize): Take templates into
account for warning suppression.
* errout.ads (Set_Specific_Warning_Off): Add Used parameter.
* erroutc.adb: Minor reformatting (Finalize): Take generic
templates into account for warning suppress.
* erroutc.ads (Set_Specific_Warning_Off): Add Used parameter.
* sem_prag.adb: Minor reformatting (Analyze_Pragma,
case Warnings): Provide Used parameter in call to
Set_Specific_Warnings_Off (to deal with generic template case).
Arnaud Charlet [Wed, 23 Nov 2011 11:00:29 +0000 (12:00 +0100)]
[multiple changes]
2011-11-23 Pascal Obry <obry@adacore.com>
* sem_prag.adb (Process_Convention): Better error message for
stdcall convention on dispatching calls.
2011-11-23 Gary Dismukes <dismukes@adacore.com>
* sem_ch4.adb, sem_ch13.adb: Minor reformatting.
2011-11-23 Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Expand_Simple_Function_Return): Add missing
implicit type conversion when the returned object is allocated
in the secondary stack and the type of the returned object is
an interface. Done to force generation of displacement of the
"this" pointer.
Arnaud Charlet [Wed, 23 Nov 2011 10:54:21 +0000 (11:54 +0100)]
[multiple changes]
2011-11-23 Robert Dewar <dewar@adacore.com>
* exp_util.adb, par-ch6.adb, sem_res.adb, par-util.adb: Minor
reformatting.
2011-11-23 Yannick Moy <moy@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): Place error on
line of precondition/ postcondition/invariant.
2011-11-23 Pascal Obry <obry@adacore.com>
* g-exptty.ads, g-exptty.adb, g-tty.ads, g-tty.adb,
terminals.c: New files.
Makefile.rtl: Add these new files.
* gnat_rm.texi: Add documentation for GNAT.Expect.TTY.
* gcc-interface/Makefile.in: Add g-exptty, g-tty, terminals.o
* gcc-interface/Make-lang.in: Update dependencies.
Paolo Carlini [Tue, 22 Nov 2011 15:04:27 +0000 (15:04 +0000)]
re PR c++/51196 (FAIL: g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C)
2011-11-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51196
* typeck.c (cp_build_binary_op, [case EQ_EXPR]): For targets having
TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_delta, do here
the -Wzero-as-null-pointer-constant warning for pmf == 0.
Iain Sandoe [Tue, 22 Nov 2011 13:51:07 +0000 (13:51 +0000)]
darwin.h (ENDFILE_SPEC): New.
gcc:
* config/darwin.h (ENDFILE_SPEC): New.
(DARWIN_CRT1_SPEC): Add crttms.o.
(STARTFILE_SPEC): Likewise for dynamic libs and bundles.
* config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
libgcc:
* config/darwin-crt-tm.c: New file.
* config.host (darwin): Build crttms.o crttme.o to provide
startup and shutdown for tm clones.
* config/t-darwin (crttms.o): New build rule.
(crttme.o): Likewise.
Iain Sandoe [Tue, 22 Nov 2011 09:57:19 +0000 (09:57 +0000)]
sjlj.S (CONCAT1, [...]): Respond to __USER_LABEL_PREFIX__ for targets that use it.
libitm:
* config/x86/sjlj.S (CONCAT1, CONCAT2, SYM): Respond to
__USER_LABEL_PREFIX__ for targets that use it.
TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets.
(_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist
in portability to non-elf targets.
(GTM_longjmp): LIkewise.
* libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__
where required.
David S. Miller [Mon, 21 Nov 2011 21:50:58 +0000 (21:50 +0000)]
Correct sparc's REGMODE_NATURAL_SIZE and MODES_TIEABLE_P wrt. vector modes.
* config/sparc/sparc.c (sparc_regmode_natural_size): New function
implementing REGMODE_NATURAL_SIZE taking into consideration vector
modes.
(sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
* config/sparc/sparc-protos.h (sparc_regmode_natural_size,
sparc_modes_tieable_p): Declare.
* gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
MODES_TIEABLE_P): Use new helper functions.
David S. Miller [Mon, 21 Nov 2011 21:50:41 +0000 (21:50 +0000)]
Revert regression causing changes to store_bit_field_1.
Revert
2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR middle-end/50325
* expmed.c (store_bit_field_1): Use extract_bit_field on big
endian targets if the source cannot be exactly covered by word
mode chunks.
Ed Smith-Rowland [Mon, 21 Nov 2011 19:27:30 +0000 (19:27 +0000)]
re PR c++/50958 ([C++0x] raw literal operator provides incorrect string for integer literal '0')
PR c++/50958
gcc/cp/
* parser.c (lookup_literal_operator): New.
(cp_parser_userdef_char_literal): Use it.
(cp_parser_userdef_numeric_literal): Use it.
(cp_parser_userdef_string_literal): Use lookup_name.
libcpp/
* expr.c (cpp_userdef_char_remove_type): Fix typo.
Georg-Johann Lay [Mon, 21 Nov 2011 19:17:52 +0000 (19:17 +0000)]
avr.c (output_reload_in_const): Loading a byte with 0 must not affect cc0.
* config/avr/avr.c (output_reload_in_const): Loading a byte with 0
must not affect cc0.
* config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
register does not change cc0. Same for any constant to ld-register.
Arnaud Charlet [Mon, 21 Nov 2011 13:31:33 +0000 (14:31 +0100)]
[multiple changes]
2011-11-21 Arnaud Charlet <charlet@adacore.com>
* s-taprop-irix.adb, s-taprop-solaris.adb (Create_Task): Use
Unrestricted_Access to deal with fact that we properly detect the
error if Access is used.
* gcc-interface/Make-lang.in: Update dependencies.
2011-11-21 Yannick Moy <moy@adacore.com>
* exp_prag.adb (Expand_Pragma_Check): Place error on first character
of expression.
* sem_res.adb (Resolve_Short_Circuit): Place error on first
character of expression.
2011-11-21 Yannick Moy <moy@adacore.com>
* exp_util.adb (Remove_Side_Effects): Do nothing in Alfa mode.
* exp_attr.adb (Expand_N_Attribute_Reference, case
Max_Size_In_Storage_Elements): Account for the size of the
hidden list header which precedes controlled objects allocated
on the heap.
* rtsfind.ads: Add RE_Header_Size_With_Padding to the runtime
tables.
* sinfo.adb (Header_Size_Added): New routine.
(Set_Header_Size_Added): New routine.
* sinfo.ads: Add flag Controlled_Header_Added along with
associated comment.
(Header_Size_Added): New inlined routine.
(Set_Header_Size_Added): New inlined routine.
* s-stposu.adb (Allocate_Any_Controlled): Use
Header_Size_With_Padding to calculate the proper
size of the header.
(Deallocate_Any_Controlled): Use
Header_Size_With_Padding to calculate the proper size
of the header. (Header_Size_With_Padding): New routine.
(Nearest_Multiple_Rounded_Up): Removed along with its uses.
* s-stposu.ads (Header_Size_With_Padding): New routine.
2011-11-21 Ed Schonberg <schonberg@adacore.com>
* aspects.adb: Aspect specifications are allowed on renaming
declarations
* par-ch6.adb (P_Subprogram): Parse aspect specifications in a
subprogram renaming declaration
Arnaud Charlet [Mon, 21 Nov 2011 13:23:52 +0000 (14:23 +0100)]
[multiple changes]
2011-11-21 Tristan Gingold <gingold@adacore.com>
* env.c: Remove unused declaration.
2011-11-21 Pascal Obry <obry@adacore.com>
* s-os_lib.ads: Minor style fix.
2011-11-21 Pascal Obry <obry@adacore.com>
* adaint.c (__gnat_dup2): When fd are stdout, stdin or stderr and
identical, do nothing on Windows XP.
2011-11-21 Yannick Moy <moy@adacore.com>
* sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl):
Use Full_Expander_Active instead of Expander_Active to control
the forced evaluation of expressions for the sake of generating
checks.
2011-11-21 Thomas Quinot <quinot@adacore.com>
* init.c: On FreeBSD, stack checking failures may raise SIGBUS.
* exp_imgv.adb (Expand_Width_Attribute): Emit
an error message rather than a warning when pragma Discard_Names
prevents the computation of 'Width. Do not emit an error through
the use of RE_Null.
2011-11-21 Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add
implicit type conversion when the type of the allocator is an
interface. Done to force generation of displacement of the "this"
pointer when required.
2011-11-21 Ed Schonberg <schonberg@adacore.com>
* sinfo.ads, sinfo.adb: Corresponding_Spec applies to expression
functions, and is set when the expression is a completion of a
previous declaration.
* sem_ch6.adb (Analyze_Expression_Function): To determine properly
whether an expression function completes a previous declaration,
use Find_Corresponding_Spec, as when analyzing a subprogram body.
Steve Baird [Mon, 21 Nov 2011 12:02:41 +0000 (12:02 +0000)]
sem_util.ads: Update comment describing function Deepest_Access_Level.
2011-11-21 Steve Baird <baird@adacore.com>
* sem_util.ads: Update comment describing function
Deepest_Access_Level.
* sem_util.adb (Deepest_Type_Access_Level): Return Int'Last for a
generic formal type.
(Type_Access_Level): Return library level
for a generic formal type.
* sem_attr.adb (Resolve_Attribute): Replace two Type_Access_Level
calls with calls to Deepest_Type_Access_Level.
* sem_ch3.adb (Analyze_Component_Declaration): replace a
Type_Access_Level call with a call to Deepest_Type_Access_Level.
* sem_res.adb (Resolve_Allocator.Check_Allocator_Discrim_Accessibility):
Replace three Type_Access_Level calls with calls to
Deepest_Type_Access_Level.
(Resolve_Allocator): Replace a Type_Access_Level call with a call to
Deepest_Type_Access_Level.
(Valid_Conversion.Valid_Array_Conversion): Replace a
Type_Access_Level call with a call to Deepest_Type_Access_Level.