Thus ends c-torture-1.45: New entries belong one directory up.

Wed Mar 12 01:23:08 1997  Torbjorn Granlund  <tege@pdc.kth.se>

	* execute/961213-1.c: New test (from hjl@lucon.org).

	* execute/complex-5.c: New test (from moshier@world.std.com).

	* execute/970217-1.c: New test (from eggert@twinsun.com).

	* execute/970214-[12].c: New tests (from eggert@twinsun.com).

	* compile/970214-1.c: New test (from wilson@cygnus.com).

	* execute/ieee/930529-1.c: Also handle arm's unusual byte/word
	ordering (from amylaar@cygnus.com).

	* execute/index-1.c: Make large vars and values `long'
	(from law@cygnus.com).

	* execute/941014-2.c: Declare malloc.

	* compile/970206-1.c: New test (from dje@cygnus.com).

	* execute/960521-1.c: Rewrite to take STACK_SIZE into account
	(from amylaar@cygnus.co.uk).

	* execute/961223-1.c: New test (from wilson@cygnus.com).

	* compile/961203-1.c: New test (from amylaar@cygnus.co.uk).

	* compile/961126-1.c: New test (from wilson@cygnus.com).

	* execute/961125-1.c: New test (from meyering@asic.sc.ti.com).

	* execute/961122-2.c: New test (from
	schwab@issan.informatik.uni-dortmund.de).

	* execute/961122-1.c: New test (from Philippe De Muyter).

	* execute/loop-2[ef].c: Default MAP_FIXED to 0 (from
	amylaar@cygnus.co.uk).

	Changes from meissner@cygnus.com:
	* execute/920501-9.c (print_longlong): Print pieces as a long, not int.
	* execute/950915-1.c: (a,b): Make types long to prevent implicit
	overflow on 16-bit systems.
	* execute/dbra-1.c: Pass long values to functions expecting
	long values.
	* execute/950607-2.c: (Point): Make field type long, since 23250 -
	(-23250) is larger than 16 bits.
	* execute/960416-1.c: Make st type unsigned long, not unsigned int.
	* execute/bf-sign-2.c: Make bitfields whose size is > 16 bits
	long, not int for 16-bit hosts.
	* execute/961017-2.c: Make z unsigned long, not unsigned int.

	* execute/cmpsi-1.c: Rewrite not to depend on type sizes.

	* execute/960909-1.c (ffs): New function (from law@cygnus.com).

	* execute/fp-cmp-1.c: Add test for SIGNAL_SUPPRESS around signal call.
	Move to execute/ieee.

	* execute/970312-1.c: New test.
	* execute/cvt-1.c: New test.

Thu Feb 13 13:52:23 1997  Michael Meissner  <meissner@cygnus.com>

	* compile/920301-1.c: If NO_LABEL_VALUES is defined, nop test
	using labels as values extension.
	* compile/920415-1.c: Ditto.
	* compile/920428-3.c: Ditto.
	* compile/920501-1.c: Ditto.
	* compile/920501-7.c: Ditto.
	* compile/941014-4.c: Ditto.
	* compile/950613-1.c: Ditto.
	* compile/labels-1.c: Ditto.
	* execute/920302-1.c: Ditto.
	* execute/920415-1.c: Ditto.
	* execute/920428-2.c: Ditto.
	* execute/920501-3.c: Ditto.
	* execute/920501-4.c: Ditto.
	* execute/920501-5.c: Ditto.
	* execute/920721-4.c: Ditto.
	* execute/comp-goto-1.c: Ditto.

	* compile/930506-2.c: If NO_TRAMPOLINES is defined, nop the test.
	* execute/921215-1.c: Ditto.
	* execute/931002-1.c: Ditto.
	* execute/nestfunc-1.c: Ditto.

Wed Jan 22 00:04:53 1997  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/961017-1.c: Add missing exit (0).

Fri Dec  6 19:38:57 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/961206-1.c: New test.

Wed Nov 13 17:13:05 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/loop-2[ef].c: Misc portability changes
	(from amylaar@cygnus.co.uk).

Tue Nov 12 15:00:42 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/961112-1.c: New test (based on a test by wilson@cygnus.com).

	* execute/ieee/DESC: New file.

	* execute/{loop-2[bcdef].c,loop-3[bc].c}:
	New tests (from amylaar@cygnus.co.uk).

	* execute/ieee/nan.c: Delete test.

	* execute/fp-cmp-1.c: Disable for Cray and VAX.

	* execute/960416-1.c: Make it work for big-endian machines (from
	amylaar@cygnus.co.uk).

Mon Nov 11 18:00:35 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/960830-1.c: Make it work for non-x86 machines.

	* execute/961017-2.c: Call exit(0).

Fri Nov  8 19:19:17 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/960311-3.c: #include <stdio.h>.
	* execute/920501-8.c: Likewise.
	* execute/920501-9.c: Likewise.
	* execute/941014-2.c: Likewise.
	* execute/960311-1.c: Likewise.
	* execute/960311-2.c: Likewise.

	* execute/961017-[12].c: New test (from wilson@cygnus.com).
	* compile/961031-1.c: New test (from wilson@cygnus.com).
	* compile/961019-1.c: New test (from wilson@cygnus.com).
	* utils/ctest.c: Print and pass (to run_a_test) all arguments.
	* execute/{920711-1.c,920810-1.c,920922-1.c,930603-3.c,931018-1.c}
	* execute/{941025-1.c,950221-1.c,950426-2.c,960209-1.c,960321-1.c}
	* execute/{960327-1.c,arith-rand.c,bf-pack-1.c,cbrt.c,divconst-2.c}
	* execute/memcpy-1.c: 16-bit changes (from law@cygnus.com).

	* compile/960514-1.c: New test (from rwilhelm@physik.tu-muenchen.de).

	* execute/960512-1.c: New test (from amylaar@meolyon.hanse.de).

	* execute/960513-1.c: New test (from amylaar@meolyon.hanse.de).

	* execute/960405-1.c: New test (from moshier@world.std.com).

Fri Nov  1 13:06:28 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/dbra-1.c: New test.

Mon Oct 28 02:31:10 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/961026-1.c: New test (from rankin@eql.caltech.edu).

	* execute/enum-1.c: New test (from law@cygnus.com).

Tue Oct 22 22:13:12 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/960801-1.c: Generalize.

Fri Oct 18 04:14:01 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* utils/ctest.c (run_a_test): Don't call `fatal' when the compiler
	returns non-zero, but there is no error message from the compiler.

Wed Oct 16 01:39:57 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/arith-rand.c (main): Decrease the number of iteration to
	1000.

Fri Oct 11 16:40:44 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* compile/961010-1.c: New test (from ian@cygnus.com).

Fri Oct  4 18:29:00 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/961004-1.c: New test (from wilson@cygnus.com).

	* compile/961004-1.c: New test (from amylaar@cygnus.co.uk).

Thu Oct  3 02:51:24 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/fp-cmp-1.c: Move signal handler setup to after == and !=
	compares.

Wed Oct  2 04:53:54 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/fp-cmp-1.c: New test.

Mon Sep 30 01:11:06 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* compile/960620-1.c: Delete test.

Fri Sep 13 12:12:30 1996  Ian Lance Taylor  <ian@cygnus.com>

	* execute/ieee/920810-1.c: Include <stdio.h>.

Mon Sep  9 18:56:33 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>

	* execute/960909-1.c: New test.

Fri Aug 30 06:31:25 1996  Torbjorn Granlund  <tege@quiet.tmg.se>

	* execute/960830-1.c: New test.

Thu Aug 29 22:06:49 1996  Torbjorn Granlund  <tege@quiet.tmg.se>

	* compile/960829-1.c: New test.

Tue Aug 13 19:23:06 1996  Torbjorn Granlund  <tege@noisy.tmg.se>

	* utils/ctest.c (run_a_test): Call wait repeatedly until
	we get back the right pid.

Sat Aug  3 16:36:43 1996  Torbjorn Granlund  <tege@noisy.tmg.se>

	* execute/960416-1.c: New test (from amylaar@meolyon.hanse.de).

	* execute/960419-[12].c: New tests (from jtc@cygnus.com).

	* execute/960416-1.c: New test (from amylaar@meolyon.hanse.de).

	* execute/920721-1.c: Make it work for 16-bit systems
	(from law@cygnus.com).
	* execute/920728-1.c: Likewise.

	* compile/960201-1.c: New test (from eggert@twinsun.com).
	* compile/960130-1.c: New test (from eggert@twinsun.com).

Sat Aug  3 16:10:20 1996  Andrew Cagney  <cagney@highland.com.au>

	* utils/ctest.c (run_a_test): Flush output before first fork to
	avoid later duplication.

	* utils/ctest.c (run_a_test): If really verbose, and a run command
	was specified (-run), print the command to be executed out.
	* (run_a_test): For the -run option, accept an argument list.

	* utils/ctest.c (main): Change verbose flag so it increments the
	verbosity instead of just setting it.  Backward compatible hack
	that allows multiple levels of tracing.  Perhaphs a separate flag
	would be better.
	(main): If really verbose, print the GCC command that is to be executed.
	(run_a_test): If really verbose, print the output from compiler
	and allow the output from the run to be displayed.

	* utils/ctest.c (main): New option -postopts added.  This allows
	the user to specify arguments that should be appended to the GCC
	command (in addition to the -options flag that specfies arguments
	that are to be prepended).
	(usage): Adjust.

Sat Aug  3 16:10:20 1996  Torbjorn Granlund  <tege@noisy.tmg.se>

	From Mike Meissner:
	* utils/ctest.c: Sort test files by calling `ls -r'.
	* utils/ctest.c: Flush stdout after each printf.
	* utils/ctest.c: When `-run', up timeout to 1000.  Allow
	explicit setting of timeout through new -cc-timeout option.

Fri Aug  2 19:53:27 1996  Torbjorn Granlund  <tege@noisy.tmg.se>

	* execute/960521-1.c: New test
	(from eggert@twinsun.com and Andreas Schwab).

	* compile/960620-1.c: New test (from rwilhelm@physik.tu-muenchen.de).

	* compile/960704-1.c: New test (from wilson@cygnus.com).

	* execute/bf-sign-2.c: New test (from gavin@nando.net).

	* execute/960802-1.c: New test (from law@cygnus.com).

	* execute/960801-1.c: New test (from dje@cygnus.com).

Sun Jun  9 17:35:56 1996  Torbjorn Granlund  <tege@noisy.tmg.se>

	* execute/960608-1.c: New test (from law@cygnus.com).

Tue Apr  2 23:18:51 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* execute/900409-1.c: Change types from int to long
	(from law@cygnus.com).

	* execute/960402-1.c: New test.

Fri Mar 29 23:40:01 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* execute/960327-1.c: New test (from law@cygnus.com).

Tue Mar 26 22:57:34 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* execute/960326-1.c: New test (from wilson@cygnus.com).
	* execute/960321-1.c: New test (from law@cygnus.com).
	* compile/960319-1.c: New test (from amylaar@meolyon.hanse.de).
	* execute/960317-1.c: New test (from amylaar@meolyon.hanse.de).
	* execute/960312-1.c: New test (from amylaar@meolyon.hanse.de).
	* execute/960311-[123].c: New tests (from dje@cygnus.com).
	* execute/960302-1.c: New test (from law@cygnus.com).
	* execute/960215-1.c: New test (from moshier@world.std.com).

Fri Mar  1 06:01:58 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* execute/regstack-1.c: New test (from moshier@world.std.com).
	* execute/960301-1.c: New test (from rankin@eql.caltech.edu).
	* execute/struct-ini-4.c: New test (from wilson@cygnus.com).

Sun Feb 25 01:10:12 1996  Paul Eggert  <eggert@twinsun.com>

	* special/doit (960224-1, 960224-2): New tests.

Wed Feb 21 07:18:19 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* compile/960221-1.c: New test (from law@cygnus.com).
	* compile/960220-1.c: New test.

Mon Feb 19 03:14:18 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* execute/960219-1.c: New test.
	* compile/960218-1.c: New test (from eggert@twinsun.com).

Sun Feb 18 04:01:54 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* execute/960218-1.c: New test.

Sat Feb 10 03:07:04 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* execute/960209-1.c: New test (from law@cygnus.com).

Wed Jan 24 23:23:05 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* execute/960117-1.c: New test (from dje@cygnus.com).
	* execute/960116-1.c: New test (from Philippe De Muyter).

Mon Jan 22 23:46:17 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* noncompile/930714-1.c: Moved from compile.

Mon Jan 22 19:08:04 1996  Paul Eggert  <eggert@twinsun.com>

	* special/doit (920717-1): Make sure `not found' message is ignored
	when invoking cc.

Tue Jan 16 14:24:36 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* noncompile/951227-1.c: New test (from eggert).
	* special/doit (951130-1): New test (from eggert).
	* noncompile/951025-1.c: New test.

Thu Jan 11 09:36:49 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* execute/widechar-1.c: New test (from eggert).

Tue Jan  9 12:44:21 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* compile/960106-1.c: New test.

Mon Dec 25 19:21:08 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>

	* compile/951222-1.c: New test (from kenner).

Wed Dec 20 14:45:42 1995  Torbjorn Granlund  <tege@noisy.tmg.se>

	* compile/951220-1.c: New test.

Wed Dec  6 13:46:17 1995  Torbjorn Granlund  <tege@noisy.tmg.se>

	From Alan Modra:
	* utils/ctest.c (main): mktemp needs 6 X's on some systems.

Mon Dec  4 21:39:39 1995  Torbjorn Granlund  <tege@noisy.tmg.se>

	* compile/widechar-1.c: New test.

	* unsorted/{bugx.c,bugy.c,inline.c}: Delete huge/duplicate tests.

	* execute/951204-1.c: New test.
	* compile/951128-1.c: New test.

Mon Nov 27 00:16:37 1995  Torbjorn Granlund  <tege@noisy.tmg.se>

	* execute/bf-layout-1.c: New test.

Wed Nov 22 21:38:25 1995  Torbjorn Granlund  <tege@noisy.tmg.se>

	* noncompile/951123-1.c: New test.

Wed Nov 16 23:31:23 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* compile/951116-1.c: New test.

Wed Nov 15 20:34:03 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* utils/ctest.c: New name for runtests.c (not to confuse it with
	DejaGNU runtest).

	* utils/runtests.c (RLIMIT_CORE): Default to 4.

	* execute/951115-1.c: New test (PA delay slot filling bug).

Tue Nov 14 00:27:10 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* utils/runtests.c (run_a_test): Read from errmess pipe before
	blocking on child process.  Also, loop calling read(2) until pipe
	is empty or 8000 chars are read.
	(usage): New function.
	(main): Call usage for -help.

Sun Nov  7 17:15:12 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* compile/951106-1.c: New test (MIPS3).

Sun Nov  5 12:22:20 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* utils/runtests.c (run_a_test): Don't print exit status for failing
	noncompile test.

Thu Oct 26 00:45:43 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* utils/runtests.c (run_a_test): Save and restore filedesc for
	stdout, so that failure in execve is reported properly.
	From Arne Juul:
	(run_a_test): To work around NetBSD bug, don't pass NULL as 2nd
	execve argument.

Wed Oct 25 16:13:46 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* utils/runtests.c (main): Fix typo testing `execute_these_files'.

Tue Oct 10 17:41:47 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/950714-1.c (main): Call exit(0).

	* compile/951004-1.c: New test.

Tue Oct  3 22:59:13 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/950929-1.c: New test (from ian@cygnus.com).

	* execute/951003-1.c: New test (from dje@cygnus.com).

Tue Sep 26 15:31:49 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/950714-1.c: New test (from wilson@cygnus.com).

	* execute/950706-1.c: New test (from rearnsha)

	* execute/ieee/{minuszero.c,rbug.c,nan.c}: New tests (from moshier).

	* execute/scope-2.c: New test (from rfg).

	* execute/bf-sign-1.c: New test (from jtc@cygnus.com).

	* noncompile/930927-1.c: Delete this duplicated test.

	* unsorted/gdb.c: Delete this test.
	* */*.c: Delete whitespace at the end of lines.

	* execute/loop-3.c: New test (from amylaar@meolyon.hanse.de).

Mon Sep 25 14:08:32 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* Make file permissions be regular.

	* utils/runtests.c (main): Combine `flag_execute' and
	`execute_these_files' into the latter.
	(run_a_test): Test only `execute_these_files'.

	* execute/920411-1.c: Generalize to work even for big-endian
	64-bit machines (from amylaar@meolyon.hanse.de).

Sun Sep 24 16:26:03 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* utils/runtests.c (set_watchdog): Actually use `seconds' parameter.

Sat Sep 23 00:08:33 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* compile/950922-1.c: New test.

Thu Sep 21 12:25:40 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* utils/runtests.c (environ): Declare.
	(run_a_test): Pass environ to execve calls.
	(main): Don't NULL-terminate `passes' array.
	(main): Make ii loop's termination condition depend on n_passes.
	(run_a_test): Check result from read; '\0'-terminate buf.
	(main): Avoid d_namlen, use strlen of d_name instead (from meyering).

	* compile/950919-1.c: New test.

	* execute/conversion.c (test_longlong_integer_to_float): Modify
	some tests conditionally for __HAVE_68881__.

	* execute/950915-1.c: New test.

	* utils/runtests.c: New file to run tests faster.
	* {execute/compile/unsorted/noncompile}/DESC: New files.

	* compile/950921-1.c: New test (from Ian Taylor).

Wed Sep 20 14:53:33 1995  Doug Evans  <dje@canuck.cygnus.com>

	* execute/920501-7.c (STACK_SIZE): Check for and use to limit
	depth of recursion.

Mon Sep 18 23:43:28 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* compile/gcc-failure/940409-1.c: Moved from compile.

	* execute/920411-1.c: Moved from execute/gcc_failure.
	* execute/gcc_failure/920627-2.c: Delete spurious test.

	* utils/runtests.c: New program.

Tue Sep 12 22:05:15 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/divconst-3.c: New test.

Mon Sep 11 12:48:04 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* compat/struct-ret-1.c: Add prototype for f.
	* compat/strct-layout.c: Conditionalize main.

Sun Sep 10 20:47:34 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/strct-pack-5.c: Delete, test is useless because of
	lack of 68k structure packing.

Thu Sep  7 13:07:40 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/{930628-1.c,941202-1.c,arith-1.c,gofast.c,struct-ret-1.c,
	va-arg-4.c}: Call exit(0), don't do return 0.

Tue Sep  5 15:23:14 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* compat/strct-layout.c (main): Add missing call to exit.

Tue Sep  5 15:23:14 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	1.35 Released.

	* noncompile/doit (case $arg): Fix typo.

	* execute/compndlit-1.c: New test.
	* execute/loop-2.c: New test.
	* execute/950809-1.c: New test.
	* execute/va-arg-5.c: New test.
	* execute/va-arg-6.c: New test.
	* execute/ptr-arith-1.c: New test.
	* execute/cmpsi-1.c: New test.

	* compile/cmpdi-1.c: New test.
	* compile/950719-1.c: New test.
	* compile/950729-1.c: New test.
	* compile/950816-[123].c: New test.
	* compile/: New test.
	* compile/: New test.
	* compile/: New test.
	* compile/: New test.

Fri Sep 5 09:30:32 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* */doit: Add -run <cmd> option to allow the use of a simulator to
	run commands in the execute subdirectory.  Accept the switch in
	the other doit commands.

Tue Jul 11 01:02:21 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/950710-1.c: New test (from meyering).

Wed Jul  5 16:03:45 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* compile/950618-1.c: New test.
	* execute/scope-1.c: New test.
	* execute/950621-1.c: New test.
	* execute/950704-1.c: New test.
	* execute/950628-1.c: New test.

Wed Jun 14 15:20:44 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/950612-1.c: New test.
	* execute/cmpdi-1.c: New test.
	* execute/tstdi-1.c: New test.
	* compile/950613-1.c: New test.
	* compile/950530-1.c: New test.
	* compile/950610-1.c: New test.
	* compile/950612-1.c: New test.

	* execute/strct-pack-5.c: Clean up, use defined type s2_t.
	* execute/strct-pack-4.c: Clean up.

Sat Jun 10 12:37:22 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/cbrt.c: Disable for vax.

Fri Jun  9 21:49:58 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/940115-1.c: Cast parameters to char *.

Thu Jun  8 00:33:51 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* compile/950607-1.c: New test.
	* execute/cbrt.c: New test.
	* execute/950607-[12].c: New tests.
	* execute/memcpy-1.c: Try more cases.
	* execute/struct-ret-2.c: New test.
	* execute/complex-4.c: New test.

Wed Jun  7 12:40:05 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/950601.c: Delete this messy and redundant test.

	* compile/funcptr-1.c: Clean up.

	* execute/950512-1.c (main): Call f1 and f2 with 0 too.
	(f2): Use type `long long', not `long'.

	* execute/950605-1.c: New test.

Wed Jun  1 01:57:45 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>

	* execute/divconst-[12].c: New tests.


Copyright (C) 1995-1997 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
