This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] fix handling of restriction_warnings


Tested on i686-linux, committed on trunk.

This patch fixes problems of confusion between Restrictions and
Restriction_Warnings pragmas. First, if both are present, we
want to ensure that the real restriction overrides the warning,
which was not always the case before.

Second, we never want to modify generated code on the basis of
a restriction warning (which may not guarantee adherence to the
restriction throughout the partition).

The incorrect prior effect of a restriction warning (actually a
profile warning, same deal), causing a bomb showed up as an
assertion error compiling gnat.dg/profile_warning.adb

2006-10-31  Arnaud Charlet  <charlet@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* restrict.ads, restrict.adb (Restriction_Active): Now returns False if
	only a restriction warning is active for the given restriction. This is
	desirable because we do not want to modify code in the case where only
	a warning is set.
	(Set_Profile_Restrictions): Make sure that a Profile_Warnings never
	causes overriding of real restrictions.
	Take advantage of new No_Restrictions constant.

	* raise.h: (__gnat_set_globals): Change profile.

Attachment: difs
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]