This patch fixes an issue whereby the compiler misidentified a package name
containing the name of a standard runtime package as said package - leading to
and improper error message prompting the user to "With" a package already in
scope.
2018-05-28 Justin Squirek <squirek@adacore.com>
gcc/ada/
* sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the
misresolved package name is not a case of mistaken identity.
gcc/testsuite/
* gnat.dg/warn15-core-main.adb, gnat.dg/warn15-core.ads,
gnat.dg/warn15-interfaces.ads, gnat.dg/warn15.ads: New testcase.
From-SVN: r260817
+2018-05-28 Justin Squirek <squirek@adacore.com>
+
+ * sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the
+ misresolved package name is not a case of mistaken identity.
+
2018-05-28 Yannick Moy <moy@adacore.com>
* sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in
-- If this is a selection from Ada, System or Interfaces, then
-- we assume a missing with for the corresponding package.
- if Is_Known_Unit (N) then
+ if Is_Known_Unit (N)
+ and then not (Present (Entity (Prefix (N)))
+ and then Scope (Entity (Prefix (N))) /=
+ Standard_Standard)
+ then
if not Error_Posted (N) then
Error_Msg_Node_2 := Selector;
Error_Msg_N -- CODEFIX
+2018-05-28 Justin Squirek <squirek@adacore.com>
+
+ * gnat.dg/warn15-core-main.adb, gnat.dg/warn15-core.ads,
+ gnat.dg/warn15-interfaces.ads, gnat.dg/warn15.ads: New testcase.
+
2018-05-27 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.dg/data_stmt_pointer.f90: new test.
--- /dev/null
+-- { dg-do compile }
+
+with Interfaces.C;
+
+procedure Warn15.Core.Main is
+ use type Interfaces.C.unsigned; -- { dg-error "\"C\" not declared in \"Interfaces\"" }
+begin
+ null;
+end Warn15.Core.Main;
--- /dev/null
+with Warn15.Interfaces;
+
+package Warn15.Core is
+end Warn15.Core;
--- /dev/null
+package Warn15.Interfaces is
+end Warn15.Interfaces;
+
--- /dev/null
+package Warn15 is
+end Warn15;