[Ada] Missing error on illegal categorization dependency
Pierre-Marie de Rodat
derodat@adacore.com
Tue May 22 13:37:00 GMT 2018
This patch modifies the analysis of subprogram declarations to ensure that an
aspect which is converted into a categorization pragma is properly taken into
account when verifying the dependencies of a subprogram unit.
------------
-- Source --
------------
-- pack.ads
package Pack is end Pack;
-- proc1.ads
with Pack;
procedure Proc1 with Pure;
-- proc2.ads
with Pack;
procedure Proc2;
pragma Pure (Proc2);
----------------------------
-- Compilation and output --
----------------------------
$ gcc -c proc1.ads
$ gcc -c proc2.ads
proc1.ads:1:06: cannot depend on "Pack" (wrong categorization)
proc1.ads:1:06: pure unit cannot depend on non-pure unit
proc2.ads:1:06: cannot depend on "Pack" (wrong categorization)
proc2.ads:1:06: pure unit cannot depend on non-pure unit
Tested on x86_64-pc-linux-gnu, committed on trunk
2018-05-22 Hristian Kirtchev <kirtchev@adacore.com>
gcc/ada/
* sem_ch6.adb (Analyze_Subprogram_Declaration): Set the proper
categorization of the unit after processing the aspects in case one of
its aspects is converted into a categorization pragma.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: text/x-diff
Size: 2232 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20180522/cd16bc6e/attachment.bin>
More information about the Gcc-patches
mailing list