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] |
Tested on i686-linux, committed on trunk If the two operands are arrays with different bounds, the result has the bounds of the left operand. The code incorrectly performed a conversion of the result to the subtype of the right operand instead. The output of the following program must be: -- 1TRUE 2TRUE 3TRUE 4TRUE 5TRUE -- with ada.Text_IO; procedure proc is type T is array (Positive range <>) of Boolean; pragma Pack (T); A : T := (1 .. 5 => True); B : T := (6 .. 10 => False); C : constant T := A xor B; begin for I in C'range loop ada.Text_IO.put(integer'image(i) & boolean'image(c(i))); end loop; end proc; 2007-04-06 Ed Schonberg <schonberg@adacore.com> * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the result are the bounds of the left operand, not the right.
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] |