r266137 - in /trunk/gcc/ada: ChangeLog exp_ch4....

pmderodat@gcc.gnu.org pmderodat@gcc.gnu.org
Wed Nov 14 11:42:00 GMT 2018


Author: pmderodat
Date: Wed Nov 14 11:42:49 2018
New Revision: 266137

URL: https://gcc.gnu.org/viewcvs?rev=266137&root=gcc&view=rev
Log:
[Ada] Problem with boundary case of XOR operation and unnesting

The XOR operation applied to a boolean array whose component type has
the range True .. True raises constraint error. Previous to this patch,
the expansion of the operation could lead to uplevel references that
were not handled properly when unnesting is in effect.

2018-11-14  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* exp_util.ads, exp_util.adb: Change the profile of
	Silly_Boolean_Array_Xor_Test, adding a formal that can be a copy
	of the right opersnd. This prevents unnesting anomalies when
	that operand contains uplevel references.
	* exp_ch4.adb (Expand_Boolean_Operation): Use this new profile.
	* exp_pakd.adb (Expand_Packed_Boolean_Operator): Ditto.

Modified:
    trunk/gcc/ada/ChangeLog
    trunk/gcc/ada/exp_ch4.adb
    trunk/gcc/ada/exp_pakd.adb
    trunk/gcc/ada/exp_util.adb
    trunk/gcc/ada/exp_util.ads



More information about the Gcc-cvs mailing list