Yes, I suspect you have just downloaded the new GNAT 2013, as I have.
I am seeing the same issue. The 2012 GNAT did not complain and compiled
the code, but the code actually should not have compiled. The 2013 GNAT
is detecting the problem.
The problem is because the package spec, parallel.ads has the
Remote_Types pragma, but it also with's the package
System.Multiprocessors, which is not a Remote_Types, Shared_Passive, or
Pure package. A Remote_Types package spec can only depend on one of the
above types of package specs.
To fix the problem, delete (or comment out) the Remote Types pragma in
parallel.ads.
Your code should then compile.
I was a bit mystified when I first saw the error message.
I then remembered an AI
http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ai05s/ai05-0206-1.txt?rev=1.6
Which was one I was particularly involved with, where the rules were
relaxed so that a Remote_Types package spec could depend on a
preelaborated packages so long as the with clause that mentions the
preelaborated package is a private with clause.
The error message is suggesting that the with for System.Multiprocessors
should be changed to be a private with, but that
wouldn't work, because the public part of parallel.ads uses declarations
from System.Multiprocessors.
Hopefully Adacore will improve the error message for GNAT 2014, but it
is reporting an actual error in the code. It is not a compiler bug.
Ideally the error message would mention that the Remote_Types pragma is
triggering the error.
I also found another set of problems in the code. The 2013 compiler is
now checking that the aliased keyword must be present on parameters of
overriding subprograms if it was specified on a parameter of the
interface. It wasn't doing that in 2012.
I have checked in the changes onto sourceforge, which you can retrieve
using git, but I have not yet created a new bugfix release, which I will
do as soon as I get a chance.
Thanks for reporting the error.
Brad