+2011-09-02 Vincent Celier <celier@adacore.com>
+
+ * prj-nmsc.adb: (Find_Sources): When the list of sources is
+ explicitly declared in an extending project, do not warn if a source
+ for an inherited naming exception is not found.
+
+2011-09-02 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch6.adb: (Is_Build_In_Place_Function_Call): Return False if
+ expansion is inactive.
+
+2011-09-02 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_util.adb (Note_Possible_Modification): If the entity
+ being modified is the renaming generated for an Ada2012 iterator
+ element, the enclosing container or array is modified as well.
+
2011-09-02 Jose Ruiz <ruiz@adacore.com>
* s-taprop-linux.adb (Initialize_Lock, Initialize_TCB,
Function_Id : Entity_Id;
begin
+ -- Return False when the expander is inactive, since awareness of
+ -- build-in-place treatment is only relevant during expansion. Note that
+ -- Is_Build_In_Place_Function, which is called as part of this function,
+ -- is also conditioned this way, but we need to check here as well to
+ -- avoid blowing up on processing protected calls when expansion is
+ -- disabled (such as with -gnatc) since those would trip over the raise
+ -- of Program_Error below.
+
+ if not Expander_Active then
+ return False;
+ end if;
+
-- Step past qualification or unchecked conversion (the latter can occur
-- in cases of calls to 'Input).
No_Name_Location);
Remove_Source (Data.Tree, Source, No_Source);
- Error_Msg_Name_1 := Name_Id (Source.File);
- Error_Msg
- (Data.Flags,
- "? unknown source file %%",
- NL.Location,
- Project.Project);
+ if Source.Naming_Exception = Yes then
+ Error_Msg_Name_1 := Name_Id (Source.File);
+ Error_Msg
+ (Data.Flags,
+ "? unknown source file %%",
+ NL.Location,
+ Project.Project);
+ end if;
Again := True;
exit Source_Loop;
then
Exp := Renamed_Object (Ent);
goto Continue;
+
+ -- The expression may be the renaming of a subcomponent of an
+ -- array or container. The assignment to the subcomponent is
+ -- a modification of the container.
+
+ elsif Comes_From_Source (Original_Node (Exp))
+ and then
+ Nkind_In (Original_Node (Exp),
+ N_Selected_Component, N_Indexed_Component)
+ then
+ Exp := Prefix (Original_Node (Exp));
+ goto Continue;
end if;
-- Generate a reference only if the assignment comes from