sem_ch5.adb: Improve warnings on redundant assignments
authorRobert Dewar <dewar@adacore.com>
Tue, 14 Aug 2007 08:41:15 +0000 (10:41 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 14 Aug 2007 08:41:15 +0000 (10:41 +0200)
commit1b6c95c49fdf70bbeed275351896b734bb80950f
tree227eeff78cb66e8b799a3a6e10d95757baeed195
parentdc06abecbb3a0353d5c95bd9d5a8afb6081e6230
sem_ch5.adb: Improve warnings on redundant assignments

2007-08-14  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* sem_ch5.adb: Improve warnings on redundant assignments

* sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
parameter
(Is_Synchronized_Tagged_Type): New subprogram that returns true
in case of synchronized tagged types (AARM 3.9.4 (6/2)).
(Safe_To_Capture_Value): Can now return True for constants, even if Cond
is set to False. Improves handling of Known_[Not_]Null.
(Wrong_Type): Special case address arithmetic attempt
(Collect_Abstract_Interfaces): Add new formal to allow collecting
abstract interfaces just using the partial view of private types.
(Has_Abstract_Interfaces): Add new formal to allow checking types
covering interfaces using the partial view of private types.
(Is_Fully_Initialized_Type): Special VM case for uTag component. This
component still needs to be defined in this case, but is never
initialized as VMs are using other dispatching mechanisms.
(Abstract_Interface_List): For a protected type, use base type to get
proper declaration.
Improve warnings on redundant assignments
(Is_Variable): Handle properly an implicit dereference of a prefixed
function call.
(Build_Actual_Subtype): If this is an actual subtype for an
unconstrained formal parameter, use the sloc of the body for the new
declaration, to prevent anomalises in the debugger.

From-SVN: r127427
gcc/ada/sem_ch5.adb
gcc/ada/sem_util.adb
gcc/ada/sem_util.ads