2016-11-04 6 views
0

Est-il possible de supprimer une restriction ada dans une partie de votre source? Par exemple, si j'ai défini l'utilisation de "pragma Restrictions (No_Dynamic_Priorities)" à un niveau élevé, mais que je souhaite que cette restriction soit ignorée dans un endroit où je sais que ce que je fais est sûr, est-il possible de supprimer cette restriction? donc le compilateur ne se plaint plus?Suppression de la restriction Ada

Répondre

4

Vous ne pouvez pas annuler explicitement une restriction; la seule façon de le faire est d'appliquer uniquement la restriction aux unités de votre programme qui en ont besoin (c'est-à-dire, pas "à un niveau élevé").

restrictions sont discutés dans ARM 13.12 et (8.1) dit

Une restriction peut imposer des exigences à certaines ou à toutes les unités constituant la cloison. Sauf indication contraire pour une restriction particulière, une telle exigence s'applique à toutes les unités composant la partition et est appliquée via une vérification de post-compilation.

Dans votre cas, ARM D.7(9) dit pour No_Dynamic_Priorities

Il n'y a pas sémantiques sur les dépendances Dynamic_Priorities de paquet, et aucune occurrence de la priorité d'attribut.

qui ne remplace pas l'exigence générale; donc je ne pense pas que ce que vous voulez faire est autorisé.