old-cross-binutils/gdb/testsuite/gdb.ada/exprs/p.adb
Paul N. Hilfinger d118ef8764 2008-01-30 Paul N. Hilfinger <hilfinger@adacore.com>
* valarith.c (value_binop): Add floating-point BINOP_MIN and
	BINOP_MAX cases.
	For BINOP_EXP, use length and signedness of left operand only for
	result, as for shifts.
	For integral operands to BINOP_EXP, use new integer_pow and
	uinteger_pow functions so as to get full range of results.
	(integer_pow): New function.
	(uinteger_pow): New function.

2008-01-30  Paul N. Hilfinger  <hilfinger@adacore.com>

	* gdb.ada/exprs: New test program.
	* gdb.ada/exprs.exp: New testcase.
2008-01-30 07:28:16 +00:00

41 lines
1.2 KiB
Ada

-- Copyright 2008 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
-- Test Ada additions to core GDB evaluation.
with System;
with Text_IO; use Text_IO;
procedure P is
type Int is range System.Min_Int .. System.Max_Int;
X, Z : Int;
Y : Integer;
begin
X := 0;
-- Set X to 7 by disguised means lest a future optimizer interfere.
for I in 1 .. 7 loop
X := X + 1;
end loop;
Z := 1;
Y := 0;
while Z < Int'Last / X loop
Z := Z * X;
Y := Y + 1;
end loop;
Put_Line (Int'Image (X ** Y)); -- START
end P;