* sem_ch4.adb (Analyze_Call): In Ada2012 an incomplete type from a
commit92efbed447e34eae336580e5282376a14a6071aa
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 May 2017 09:24:24 +0000 (22 09:24 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 May 2017 09:24:24 +0000 (22 09:24 +0000)
tree5b660c58c813d8aea1e713136d95cb2b70afe62d
parent7de91b0a0253a5bf91c60818d93238ddd65cab74
* sem_ch4.adb (Analyze_Call): In Ada2012 an incomplete type from a
limited view may appear in the profile of a function, and a call to
that function in another unit in which the full view is available must
use this full view to spurious type errors at the point of call.
* inline.adb (Analyze_Inlined_Bodies): Remove restriction on loading
of parent body with a with clause for the main unit.
* gcc-interface/decl.c (defer_limited_with_list): Document new usage.
(gnat_to_gnu_entity) <E_Access_Type>: Handle completed Taft Amendment
types declared in external units like types from limited with clauses.
Adjust final processing of defer_limited_with_list accordingly.
* gcc-interface/trans.c (gnat_to_gnu) < N_Selected_Component>: Try
again to translate the prefix after the field if it is incomplete.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248321 138bc75d-0d04-0410-961f-82ee72b054a4
14 files changed:
gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/trans.c
gcc/ada/inline.adb
gcc/ada/sem_ch4.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/limited_with5.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/limited_with5.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/limited_with5_pkg.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/limited_with5_pkg.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/limited_with6.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/limited_with6.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/limited_with6_pkg.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/limited_with6_pkg.ads [new file with mode: 0644]