freeze.adb (Freeze_Profile): Suppress warning if imported subprogram is not at library level.

2015-05-22  Bob Duff  <duff@adacore.com>

	* freeze.adb (Freeze_Profile): Suppress warning if imported
	subprogram is not at library level.

From-SVN: r223549
This commit is contained in:
Bob Duff 2015-05-22 12:31:03 +00:00 committed by Arnaud Charlet
parent db222eadb1
commit a79cdb2c62
2 changed files with 18 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2015-05-22 Bob Duff <duff@adacore.com>
* freeze.adb (Freeze_Profile): Suppress warning if imported
subprogram is not at library level.
2015-05-22 Robert Dewar <dewar@adacore.com>
* sem_ch8.adb (Analyze_Object_Renaming): Check for renaming

View File

@ -3357,9 +3357,20 @@ package body Freeze is
end if;
end if;
-- Check suspicious use of Import in pure unit
-- Check suspicious use of Import in pure unit (cases where the RM
-- allows calls to be omitted).
if Is_Imported (E) and then Is_Pure (Cunit_Entity (Current_Sem_Unit))
if Is_Imported (E)
-- It might be suspicious if the compilation unit has the Pure
-- aspect/pragma.
and then Has_Pragma_Pure (Cunit_Entity (Current_Sem_Unit))
-- The RM allows omission of calls only in the case of
-- library-level subprograms (see RM-10.2.1(18)).
and then Is_Library_Level_Entity (E)
-- Ignore internally generated entity. This happens in some cases
-- of subprograms in specs, where we generate an implied body.