Commit Graph

1594 Commits

Author SHA1 Message Date
Francois-Xavier Coudert 887d9b8b6d libgfortran.h: Include <stdlib.h> header.
* libgfortran.h: Include <stdlib.h> header.
	* intrinsics/access.c: Do not include <stdlib.h> header.
	* intrinsics/chdir.c: Do not include <stdlib.h> header.
	* intrinsics/chmod.c: Do not include <stdlib.h> header.
	* intrinsics/date_and_time.c: Do not include <stdlib.h> header.
	* intrinsics/env.c: Do not include <stdlib.h> header.
	* intrinsics/execute_command_line.c: Do not include <stdlib.h> header.
	* intrinsics/exit.c: Do not include <stdlib.h> header.
	* intrinsics/getcwd.c: Do not include <stdlib.h> header.
	* intrinsics/getlog.c: Do not include <stdlib.h> header.
	* intrinsics/link.c: Do not include <stdlib.h> header.
	* intrinsics/move_alloc.c: Do not include <stdlib.h> header.
	* intrinsics/perror.c: Do not include <stdlib.h> header.
	* intrinsics/random.c: Do not include <stdlib.h> header.
	* intrinsics/rename.c: Do not include <stdlib.h> header.
	* intrinsics/reshape_generic.c: Do not include <stdlib.h> header.
	* intrinsics/stat.c: Do not include <stdlib.h> header.
	* intrinsics/symlnk.c: Do not include <stdlib.h> header.
	* intrinsics/system.c: Do not include <stdlib.h> header.
	* intrinsics/unlink.c: Do not include <stdlib.h> header.
	* io/fbuf.c: Do not include <stdlib.h> header.
	* io/format.c: Do not include <stdlib.h> header.
	* io/intrinsics.c: Do not include <stdlib.h> header.
	* io/list_read.c: Do not include <stdlib.h> header.
	* io/lock.c: Do not include <stdlib.h> header.
	* io/open.c: Do not include <stdlib.h> header.
	* io/read.c: Do not include <stdlib.h> header.
	* io/transfer.c: Do not include <stdlib.h> header.
	* io/unit.c: Do not include <stdlib.h> header.
	* io/unix.c: Do not include <stdlib.h> header.
	* io/write.c: Do not include <stdlib.h> header.
	* m4/all.m4: Do not include <stdlib.h> header.
	* m4/any.m4: Do not include <stdlib.h> header.
	* m4/bessel.m4: Do not include <stdlib.h> header.
	* m4/count.m4: Do not include <stdlib.h> header.
	* m4/cshift0.m4: Do not include <stdlib.h> header.
	* m4/cshift1.m4: Do not include <stdlib.h> header.
	* m4/eoshift1.m4: Do not include <stdlib.h> header.
	* m4/eoshift3.m4: Do not include <stdlib.h> header.
	* m4/iall.m4: Do not include <stdlib.h> header.
	* m4/iany.m4: Do not include <stdlib.h> header.
	* m4/in_pack.m4: Do not include <stdlib.h> header.
	* m4/in_unpack.m4: Do not include <stdlib.h> header.
	* m4/iparity.m4: Do not include <stdlib.h> header.
	* m4/matmul.m4: Do not include <stdlib.h> header.
	* m4/matmull.m4: Do not include <stdlib.h> header.
	* m4/maxloc0.m4: Do not include <stdlib.h> header.
	* m4/maxloc1.m4: Do not include <stdlib.h> header.
	* m4/maxval.m4: Do not include <stdlib.h> header.
	* m4/minloc0.m4: Do not include <stdlib.h> header.
	* m4/minloc1.m4: Do not include <stdlib.h> header.
	* m4/minval.m4: Do not include <stdlib.h> header.
	* m4/norm2.m4: Do not include <stdlib.h> header.
	* m4/pack.m4: Do not include <stdlib.h> header.
	* m4/parity.m4: Do not include <stdlib.h> header.
	* m4/product.m4: Do not include <stdlib.h> header.
	* m4/reshape.m4: Do not include <stdlib.h> header.
	* m4/shape.m4: Do not include <stdlib.h> header.
	* m4/spread.m4: Do not include <stdlib.h> header.
	* m4/sum.m4: Do not include <stdlib.h> header.
	* m4/unpack.m4: Do not include <stdlib.h> header.
	* runtime/environ.c: Do not include <stdlib.h> header.
	* runtime/error.c: Do not include <stdlib.h> header.
	* runtime/memory.c: Do not include <stdlib.h> header.
	* runtime/minimal.c: Do not include <stdlib.h> header.
	* runtime/string.c: Do not include <stdlib.h> header.
	* generated/all_l1.c: Regenerate.
	* generated/all_l16.c: Regenerate.
	* generated/all_l2.c: Regenerate.
	* generated/all_l4.c: Regenerate.
	* generated/all_l8.c: Regenerate.
	* generated/any_l1.c: Regenerate.
	* generated/any_l16.c: Regenerate.
	* generated/any_l2.c: Regenerate.
	* generated/any_l4.c: Regenerate.
	* generated/any_l8.c: Regenerate.
	* generated/bessel_r10.c: Regenerate.
	* generated/bessel_r16.c: Regenerate.
	* generated/bessel_r4.c: Regenerate.
	* generated/bessel_r8.c: Regenerate.
	* generated/count_16_l.c: Regenerate.
	* generated/count_1_l.c: Regenerate.
	* generated/count_2_l.c: Regenerate.
	* generated/count_4_l.c: Regenerate.
	* generated/count_8_l.c: Regenerate.
	* generated/cshift0_c10.c: Regenerate.
	* generated/cshift0_c16.c: Regenerate.
	* generated/cshift0_c4.c: Regenerate.
	* generated/cshift0_c8.c: Regenerate.
	* generated/cshift0_i1.c: Regenerate.
	* generated/cshift0_i16.c: Regenerate.
	* generated/cshift0_i2.c: Regenerate.
	* generated/cshift0_i4.c: Regenerate.
	* generated/cshift0_i8.c: Regenerate.
	* generated/cshift0_r10.c: Regenerate.
	* generated/cshift0_r16.c: Regenerate.
	* generated/cshift0_r4.c: Regenerate.
	* generated/cshift0_r8.c: Regenerate.
	* generated/cshift1_16.c: Regenerate.
	* generated/cshift1_4.c: Regenerate.
	* generated/cshift1_8.c: Regenerate.
	* generated/eoshift1_16.c: Regenerate.
	* generated/eoshift1_4.c: Regenerate.
	* generated/eoshift1_8.c: Regenerate.
	* generated/eoshift3_16.c: Regenerate.
	* generated/eoshift3_4.c: Regenerate.
	* generated/eoshift3_8.c: Regenerate.
	* generated/iall_i1.c: Regenerate.
	* generated/iall_i16.c: Regenerate.
	* generated/iall_i2.c: Regenerate.
	* generated/iall_i4.c: Regenerate.
	* generated/iall_i8.c: Regenerate.
	* generated/iany_i1.c: Regenerate.
	* generated/iany_i16.c: Regenerate.
	* generated/iany_i2.c: Regenerate.
	* generated/iany_i4.c: Regenerate.
	* generated/iany_i8.c: Regenerate.
	* generated/in_pack_c10.c: Regenerate.
	* generated/in_pack_c16.c: Regenerate.
	* generated/in_pack_c4.c: Regenerate.
	* generated/in_pack_c8.c: Regenerate.
	* generated/in_pack_i1.c: Regenerate.
	* generated/in_pack_i16.c: Regenerate.
	* generated/in_pack_i2.c: Regenerate.
	* generated/in_pack_i4.c: Regenerate.
	* generated/in_pack_i8.c: Regenerate.
	* generated/in_pack_r10.c: Regenerate.
	* generated/in_pack_r16.c: Regenerate.
	* generated/in_pack_r4.c: Regenerate.
	* generated/in_pack_r8.c: Regenerate.
	* generated/in_unpack_c10.c: Regenerate.
	* generated/in_unpack_c16.c: Regenerate.
	* generated/in_unpack_c4.c: Regenerate.
	* generated/in_unpack_c8.c: Regenerate.
	* generated/in_unpack_i1.c: Regenerate.
	* generated/in_unpack_i16.c: Regenerate.
	* generated/in_unpack_i2.c: Regenerate.
	* generated/in_unpack_i4.c: Regenerate.
	* generated/in_unpack_i8.c: Regenerate.
	* generated/in_unpack_r10.c: Regenerate.
	* generated/in_unpack_r16.c: Regenerate.
	* generated/in_unpack_r4.c: Regenerate.
	* generated/in_unpack_r8.c: Regenerate.
	* generated/iparity_i1.c: Regenerate.
	* generated/iparity_i16.c: Regenerate.
	* generated/iparity_i2.c: Regenerate.
	* generated/iparity_i4.c: Regenerate.
	* generated/iparity_i8.c: Regenerate.
	* generated/matmul_c10.c: Regenerate.
	* generated/matmul_c16.c: Regenerate.
	* generated/matmul_c4.c: Regenerate.
	* generated/matmul_c8.c: Regenerate.
	* generated/matmul_i1.c: Regenerate.
	* generated/matmul_i16.c: Regenerate.
	* generated/matmul_i2.c: Regenerate.
	* generated/matmul_i4.c: Regenerate.
	* generated/matmul_i8.c: Regenerate.
	* generated/matmul_l16.c: Regenerate.
	* generated/matmul_l4.c: Regenerate.
	* generated/matmul_l8.c: Regenerate.
	* generated/matmul_r10.c: Regenerate.
	* generated/matmul_r16.c: Regenerate.
	* generated/matmul_r4.c: Regenerate.
	* generated/matmul_r8.c: Regenerate.
	* generated/maxloc0_16_i1.c: Regenerate.
	* generated/maxloc0_16_i16.c: Regenerate.
	* generated/maxloc0_16_i2.c: Regenerate.
	* generated/maxloc0_16_i4.c: Regenerate.
	* generated/maxloc0_16_i8.c: Regenerate.
	* generated/maxloc0_16_r10.c: Regenerate.
	* generated/maxloc0_16_r16.c: Regenerate.
	* generated/maxloc0_16_r4.c: Regenerate.
	* generated/maxloc0_16_r8.c: Regenerate.
	* generated/maxloc0_4_i1.c: Regenerate.
	* generated/maxloc0_4_i16.c: Regenerate.
	* generated/maxloc0_4_i2.c: Regenerate.
	* generated/maxloc0_4_i4.c: Regenerate.
	* generated/maxloc0_4_i8.c: Regenerate.
	* generated/maxloc0_4_r10.c: Regenerate.
	* generated/maxloc0_4_r16.c: Regenerate.
	* generated/maxloc0_4_r4.c: Regenerate.
	* generated/maxloc0_4_r8.c: Regenerate.
	* generated/maxloc0_8_i1.c: Regenerate.
	* generated/maxloc0_8_i16.c: Regenerate.
	* generated/maxloc0_8_i2.c: Regenerate.
	* generated/maxloc0_8_i4.c: Regenerate.
	* generated/maxloc0_8_i8.c: Regenerate.
	* generated/maxloc0_8_r10.c: Regenerate.
	* generated/maxloc0_8_r16.c: Regenerate.
	* generated/maxloc0_8_r4.c: Regenerate.
	* generated/maxloc0_8_r8.c: Regenerate.
	* generated/maxloc1_16_i1.c: Regenerate.
	* generated/maxloc1_16_i16.c: Regenerate.
	* generated/maxloc1_16_i2.c: Regenerate.
	* generated/maxloc1_16_i4.c: Regenerate.
	* generated/maxloc1_16_i8.c: Regenerate.
	* generated/maxloc1_16_r10.c: Regenerate.
	* generated/maxloc1_16_r16.c: Regenerate.
	* generated/maxloc1_16_r4.c: Regenerate.
	* generated/maxloc1_16_r8.c: Regenerate.
	* generated/maxloc1_4_i1.c: Regenerate.
	* generated/maxloc1_4_i16.c: Regenerate.
	* generated/maxloc1_4_i2.c: Regenerate.
	* generated/maxloc1_4_i4.c: Regenerate.
	* generated/maxloc1_4_i8.c: Regenerate.
	* generated/maxloc1_4_r10.c: Regenerate.
	* generated/maxloc1_4_r16.c: Regenerate.
	* generated/maxloc1_4_r4.c: Regenerate.
	* generated/maxloc1_4_r8.c: Regenerate.
	* generated/maxloc1_8_i1.c: Regenerate.
	* generated/maxloc1_8_i16.c: Regenerate.
	* generated/maxloc1_8_i2.c: Regenerate.
	* generated/maxloc1_8_i4.c: Regenerate.
	* generated/maxloc1_8_i8.c: Regenerate.
	* generated/maxloc1_8_r10.c: Regenerate.
	* generated/maxloc1_8_r16.c: Regenerate.
	* generated/maxloc1_8_r4.c: Regenerate.
	* generated/maxloc1_8_r8.c: Regenerate.
	* generated/maxval_i1.c: Regenerate.
	* generated/maxval_i16.c: Regenerate.
	* generated/maxval_i2.c: Regenerate.
	* generated/maxval_i4.c: Regenerate.
	* generated/maxval_i8.c: Regenerate.
	* generated/maxval_r10.c: Regenerate.
	* generated/maxval_r16.c: Regenerate.
	* generated/maxval_r4.c: Regenerate.
	* generated/maxval_r8.c: Regenerate.
	* generated/minloc0_16_i1.c: Regenerate.
	* generated/minloc0_16_i16.c: Regenerate.
	* generated/minloc0_16_i2.c: Regenerate.
	* generated/minloc0_16_i4.c: Regenerate.
	* generated/minloc0_16_i8.c: Regenerate.
	* generated/minloc0_16_r10.c: Regenerate.
	* generated/minloc0_16_r16.c: Regenerate.
	* generated/minloc0_16_r4.c: Regenerate.
	* generated/minloc0_16_r8.c: Regenerate.
	* generated/minloc0_4_i1.c: Regenerate.
	* generated/minloc0_4_i16.c: Regenerate.
	* generated/minloc0_4_i2.c: Regenerate.
	* generated/minloc0_4_i4.c: Regenerate.
	* generated/minloc0_4_i8.c: Regenerate.
	* generated/minloc0_4_r10.c: Regenerate.
	* generated/minloc0_4_r16.c: Regenerate.
	* generated/minloc0_4_r4.c: Regenerate.
	* generated/minloc0_4_r8.c: Regenerate.
	* generated/minloc0_8_i1.c: Regenerate.
	* generated/minloc0_8_i16.c: Regenerate.
	* generated/minloc0_8_i2.c: Regenerate.
	* generated/minloc0_8_i4.c: Regenerate.
	* generated/minloc0_8_i8.c: Regenerate.
	* generated/minloc0_8_r10.c: Regenerate.
	* generated/minloc0_8_r16.c: Regenerate.
	* generated/minloc0_8_r4.c: Regenerate.
	* generated/minloc0_8_r8.c: Regenerate.
	* generated/minloc1_16_i1.c: Regenerate.
	* generated/minloc1_16_i16.c: Regenerate.
	* generated/minloc1_16_i2.c: Regenerate.
	* generated/minloc1_16_i4.c: Regenerate.
	* generated/minloc1_16_i8.c: Regenerate.
	* generated/minloc1_16_r10.c: Regenerate.
	* generated/minloc1_16_r16.c: Regenerate.
	* generated/minloc1_16_r4.c: Regenerate.
	* generated/minloc1_16_r8.c: Regenerate.
	* generated/minloc1_4_i1.c: Regenerate.
	* generated/minloc1_4_i16.c: Regenerate.
	* generated/minloc1_4_i2.c: Regenerate.
	* generated/minloc1_4_i4.c: Regenerate.
	* generated/minloc1_4_i8.c: Regenerate.
	* generated/minloc1_4_r10.c: Regenerate.
	* generated/minloc1_4_r16.c: Regenerate.
	* generated/minloc1_4_r4.c: Regenerate.
	* generated/minloc1_4_r8.c: Regenerate.
	* generated/minloc1_8_i1.c: Regenerate.
	* generated/minloc1_8_i16.c: Regenerate.
	* generated/minloc1_8_i2.c: Regenerate.
	* generated/minloc1_8_i4.c: Regenerate.
	* generated/minloc1_8_i8.c: Regenerate.
	* generated/minloc1_8_r10.c: Regenerate.
	* generated/minloc1_8_r16.c: Regenerate.
	* generated/minloc1_8_r4.c: Regenerate.
	* generated/minloc1_8_r8.c: Regenerate.
	* generated/minval_i1.c: Regenerate.
	* generated/minval_i16.c: Regenerate.
	* generated/minval_i2.c: Regenerate.
	* generated/minval_i4.c: Regenerate.
	* generated/minval_i8.c: Regenerate.
	* generated/minval_r10.c: Regenerate.
	* generated/minval_r16.c: Regenerate.
	* generated/minval_r4.c: Regenerate.
	* generated/minval_r8.c: Regenerate.
	* generated/norm2_r10.c: Regenerate.
	* generated/norm2_r16.c: Regenerate.
	* generated/norm2_r4.c: Regenerate.
	* generated/norm2_r8.c: Regenerate.
	* generated/pack_c10.c: Regenerate.
	* generated/pack_c16.c: Regenerate.
	* generated/pack_c4.c: Regenerate.
	* generated/pack_c8.c: Regenerate.
	* generated/pack_i1.c: Regenerate.
	* generated/pack_i16.c: Regenerate.
	* generated/pack_i2.c: Regenerate.
	* generated/pack_i4.c: Regenerate.
	* generated/pack_i8.c: Regenerate.
	* generated/pack_r10.c: Regenerate.
	* generated/pack_r16.c: Regenerate.
	* generated/pack_r4.c: Regenerate.
	* generated/pack_r8.c: Regenerate.
	* generated/parity_l1.c: Regenerate.
	* generated/parity_l16.c: Regenerate.
	* generated/parity_l2.c: Regenerate.
	* generated/parity_l4.c: Regenerate.
	* generated/parity_l8.c: Regenerate.
	* generated/product_c10.c: Regenerate.
	* generated/product_c16.c: Regenerate.
	* generated/product_c4.c: Regenerate.
	* generated/product_c8.c: Regenerate.
	* generated/product_i1.c: Regenerate.
	* generated/product_i16.c: Regenerate.
	* generated/product_i2.c: Regenerate.
	* generated/product_i4.c: Regenerate.
	* generated/product_i8.c: Regenerate.
	* generated/product_r10.c: Regenerate.
	* generated/product_r16.c: Regenerate.
	* generated/product_r4.c: Regenerate.
	* generated/product_r8.c: Regenerate.
	* generated/reshape_c10.c: Regenerate.
	* generated/reshape_c16.c: Regenerate.
	* generated/reshape_c4.c: Regenerate.
	* generated/reshape_c8.c: Regenerate.
	* generated/reshape_i16.c: Regenerate.
	* generated/reshape_i4.c: Regenerate.
	* generated/reshape_i8.c: Regenerate.
	* generated/reshape_r10.c: Regenerate.
	* generated/reshape_r16.c: Regenerate.
	* generated/reshape_r4.c: Regenerate.
	* generated/reshape_r8.c: Regenerate.
	* generated/shape_i1.c: Regenerate.
	* generated/shape_i16.c: Regenerate.
	* generated/shape_i2.c: Regenerate.
	* generated/shape_i4.c: Regenerate.
	* generated/shape_i8.c: Regenerate.
	* generated/spread_c10.c: Regenerate.
	* generated/spread_c16.c: Regenerate.
	* generated/spread_c4.c: Regenerate.
	* generated/spread_c8.c: Regenerate.
	* generated/spread_i1.c: Regenerate.
	* generated/spread_i16.c: Regenerate.
	* generated/spread_i2.c: Regenerate.
	* generated/spread_i4.c: Regenerate.
	* generated/spread_i8.c: Regenerate.
	* generated/spread_r10.c: Regenerate.
	* generated/spread_r16.c: Regenerate.
	* generated/spread_r4.c: Regenerate.
	* generated/spread_r8.c: Regenerate.
	* generated/sum_c10.c: Regenerate.
	* generated/sum_c16.c: Regenerate.
	* generated/sum_c4.c: Regenerate.
	* generated/sum_c8.c: Regenerate.
	* generated/sum_i1.c: Regenerate.
	* generated/sum_i16.c: Regenerate.
	* generated/sum_i2.c: Regenerate.
	* generated/sum_i4.c: Regenerate.
	* generated/sum_i8.c: Regenerate.
	* generated/sum_r10.c: Regenerate.
	* generated/sum_r16.c: Regenerate.
	* generated/sum_r4.c: Regenerate.
	* generated/sum_r8.c: Regenerate.
	* generated/unpack_c10.c: Regenerate.
	* generated/unpack_c16.c: Regenerate.
	* generated/unpack_c4.c: Regenerate.
	* generated/unpack_c8.c: Regenerate.
	* generated/unpack_i1.c: Regenerate.
	* generated/unpack_i16.c: Regenerate.
	* generated/unpack_i2.c: Regenerate.
	* generated/unpack_i4.c: Regenerate.
	* generated/unpack_i8.c: Regenerate.
	* generated/unpack_r10.c: Regenerate.
	* generated/unpack_r16.c: Regenerate.
	* generated/unpack_r4.c: Regenerate.
	* generated/unpack_r8.c: Regenerate.

From-SVN: r243846
2016-12-21 10:41:57 +00:00
Francois-Xavier Coudert 981c0cd1bc abort.c: Remove unused headers.
* intrinsics/abort.c: Remove unused headers.
	* intrinsics/access.c: Remove unused headers.
	* intrinsics/chdir.c: Remove unused headers.
	* intrinsics/chmod.c: Remove unused headers.
	* intrinsics/cshift0.c: Remove unused headers.
	* intrinsics/ctime.c: Remove unused headers.
	* intrinsics/eoshift0.c: Remove unused headers.
	* intrinsics/eoshift2.c: Remove unused headers.
	* intrinsics/extends_type_of.c: Remove unused headers.
	* intrinsics/link.c: Remove unused headers.
	* intrinsics/pack_generic.c: Remove unused headers.
	* intrinsics/perror.c: Remove unused headers.
	* intrinsics/rename.c: Remove unused headers.
	* intrinsics/reshape_generic.c: Remove unused headers.
	* intrinsics/sleep.c: Remove unused headers.
	* intrinsics/spread_generic.c: Remove unused headers.
	* intrinsics/stat.c: Remove unused headers.
	* intrinsics/string_intrinsics.c: Remove unused headers.
	* intrinsics/symlnk.c: Remove unused headers.
	* intrinsics/system.c: Remove unused headers.
	* intrinsics/umask.c: Remove unused headers.
	* intrinsics/unlink.c: Remove unused headers.
	* intrinsics/unpack_generic.c: Remove unused headers.
	* io/read.c: Remove unused headers.
	* io/transfer.c: Remove unused headers.
	* io/unix.c: Remove unused headers.
	* io/write.c: Remove unused headers.
	* m4/all.m4: Remove unused headers.
	* m4/any.m4: Remove unused headers.
	* m4/bessel.m4: Remove unused headers.
	* m4/count.m4: Remove unused headers.
	* m4/cshift0.m4: Remove unused headers.
	* m4/cshift1.m4: Remove unused headers.
	* m4/eoshift1.m4: Remove unused headers.
	* m4/eoshift3.m4: Remove unused headers.
	* m4/iall.m4: Remove unused headers.
	* m4/iany.m4: Remove unused headers.
	* m4/in_pack.m4: Remove unused headers.
	* m4/in_unpack.m4: Remove unused headers.
	* m4/iparity.m4: Remove unused headers.
	* m4/maxloc0.m4: Remove unused headers.
	* m4/maxloc1.m4: Remove unused headers.
	* m4/maxval.m4: Remove unused headers.
	* m4/minloc0.m4: Remove unused headers.
	* m4/minloc1.m4: Remove unused headers.
	* m4/minval.m4: Remove unused headers.
	* m4/norm2.m4: Remove unused headers.
	* m4/pack.m4: Remove unused headers.
	* m4/parity.m4: Remove unused headers.
	* m4/product.m4: Remove unused headers.
	* m4/reshape.m4: Remove unused headers.
	* m4/shape.m4: Remove unused headers.
	* m4/spread.m4: Remove unused headers.
	* m4/sum.m4: Remove unused headers.
	* m4/unpack.m4: Remove unused headers.
	* runtime/backtrace.c: Remove unused headers.
	* runtime/convert_char.c: Remove unused headers.
	* runtime/in_pack_generic.c: Remove unused headers.
	* runtime/in_unpack_generic.c: Remove unused headers.
	* runtime/main.c: Remove unused headers.
	* runtime/stop.c: Remove unused headers.
	* generated/all_l1.c: Regenerate.
	* generated/all_l16.c: Regenerate.
	* generated/all_l2.c: Regenerate.
	* generated/all_l4.c: Regenerate.
	* generated/all_l8.c: Regenerate.
	* generated/any_l1.c: Regenerate.
	* generated/any_l16.c: Regenerate.
	* generated/any_l2.c: Regenerate.
	* generated/any_l4.c: Regenerate.
	* generated/any_l8.c: Regenerate.
	* generated/bessel_r10.c: Regenerate.
	* generated/bessel_r16.c: Regenerate.
	* generated/bessel_r4.c: Regenerate.
	* generated/bessel_r8.c: Regenerate.
	* generated/count_16_l.c: Regenerate.
	* generated/count_1_l.c: Regenerate.
	* generated/count_2_l.c: Regenerate.
	* generated/count_4_l.c: Regenerate.
	* generated/count_8_l.c: Regenerate.
	* generated/cshift0_c10.c: Regenerate.
	* generated/cshift0_c16.c: Regenerate.
	* generated/cshift0_c4.c: Regenerate.
	* generated/cshift0_c8.c: Regenerate.
	* generated/cshift0_i1.c: Regenerate.
	* generated/cshift0_i16.c: Regenerate.
	* generated/cshift0_i2.c: Regenerate.
	* generated/cshift0_i4.c: Regenerate.
	* generated/cshift0_i8.c: Regenerate.
	* generated/cshift0_r10.c: Regenerate.
	* generated/cshift0_r16.c: Regenerate.
	* generated/cshift0_r4.c: Regenerate.
	* generated/cshift0_r8.c: Regenerate.
	* generated/cshift1_16.c: Regenerate.
	* generated/cshift1_4.c: Regenerate.
	* generated/cshift1_8.c: Regenerate.
	* generated/eoshift1_16.c: Regenerate.
	* generated/eoshift1_4.c: Regenerate.
	* generated/eoshift1_8.c: Regenerate.
	* generated/eoshift3_16.c: Regenerate.
	* generated/eoshift3_4.c: Regenerate.
	* generated/eoshift3_8.c: Regenerate.
	* generated/iall_i1.c: Regenerate.
	* generated/iall_i16.c: Regenerate.
	* generated/iall_i2.c: Regenerate.
	* generated/iall_i4.c: Regenerate.
	* generated/iall_i8.c: Regenerate.
	* generated/iany_i1.c: Regenerate.
	* generated/iany_i16.c: Regenerate.
	* generated/iany_i2.c: Regenerate.
	* generated/iany_i4.c: Regenerate.
	* generated/iany_i8.c: Regenerate.
	* generated/in_pack_c10.c: Regenerate.
	* generated/in_pack_c16.c: Regenerate.
	* generated/in_pack_c4.c: Regenerate.
	* generated/in_pack_c8.c: Regenerate.
	* generated/in_pack_i1.c: Regenerate.
	* generated/in_pack_i16.c: Regenerate.
	* generated/in_pack_i2.c: Regenerate.
	* generated/in_pack_i4.c: Regenerate.
	* generated/in_pack_i8.c: Regenerate.
	* generated/in_pack_r10.c: Regenerate.
	* generated/in_pack_r16.c: Regenerate.
	* generated/in_pack_r4.c: Regenerate.
	* generated/in_pack_r8.c: Regenerate.
	* generated/in_unpack_c10.c: Regenerate.
	* generated/in_unpack_c16.c: Regenerate.
	* generated/in_unpack_c4.c: Regenerate.
	* generated/in_unpack_c8.c: Regenerate.
	* generated/in_unpack_i1.c: Regenerate.
	* generated/in_unpack_i16.c: Regenerate.
	* generated/in_unpack_i2.c: Regenerate.
	* generated/in_unpack_i4.c: Regenerate.
	* generated/in_unpack_i8.c: Regenerate.
	* generated/in_unpack_r10.c: Regenerate.
	* generated/in_unpack_r16.c: Regenerate.
	* generated/in_unpack_r4.c: Regenerate.
	* generated/in_unpack_r8.c: Regenerate.
	* generated/iparity_i1.c: Regenerate.
	* generated/iparity_i16.c: Regenerate.
	* generated/iparity_i2.c: Regenerate.
	* generated/iparity_i4.c: Regenerate.
	* generated/iparity_i8.c: Regenerate.
	* generated/maxloc0_16_i1.c: Regenerate.
	* generated/maxloc0_16_i16.c: Regenerate.
	* generated/maxloc0_16_i2.c: Regenerate.
	* generated/maxloc0_16_i4.c: Regenerate.
	* generated/maxloc0_16_i8.c: Regenerate.
	* generated/maxloc0_16_r10.c: Regenerate.
	* generated/maxloc0_16_r16.c: Regenerate.
	* generated/maxloc0_16_r4.c: Regenerate.
	* generated/maxloc0_16_r8.c: Regenerate.
	* generated/maxloc0_4_i1.c: Regenerate.
	* generated/maxloc0_4_i16.c: Regenerate.
	* generated/maxloc0_4_i2.c: Regenerate.
	* generated/maxloc0_4_i4.c: Regenerate.
	* generated/maxloc0_4_i8.c: Regenerate.
	* generated/maxloc0_4_r10.c: Regenerate.
	* generated/maxloc0_4_r16.c: Regenerate.
	* generated/maxloc0_4_r4.c: Regenerate.
	* generated/maxloc0_4_r8.c: Regenerate.
	* generated/maxloc0_8_i1.c: Regenerate.
	* generated/maxloc0_8_i16.c: Regenerate.
	* generated/maxloc0_8_i2.c: Regenerate.
	* generated/maxloc0_8_i4.c: Regenerate.
	* generated/maxloc0_8_i8.c: Regenerate.
	* generated/maxloc0_8_r10.c: Regenerate.
	* generated/maxloc0_8_r16.c: Regenerate.
	* generated/maxloc0_8_r4.c: Regenerate.
	* generated/maxloc0_8_r8.c: Regenerate.
	* generated/maxloc1_16_i1.c: Regenerate.
	* generated/maxloc1_16_i16.c: Regenerate.
	* generated/maxloc1_16_i2.c: Regenerate.
	* generated/maxloc1_16_i4.c: Regenerate.
	* generated/maxloc1_16_i8.c: Regenerate.
	* generated/maxloc1_16_r10.c: Regenerate.
	* generated/maxloc1_16_r16.c: Regenerate.
	* generated/maxloc1_16_r4.c: Regenerate.
	* generated/maxloc1_16_r8.c: Regenerate.
	* generated/maxloc1_4_i1.c: Regenerate.
	* generated/maxloc1_4_i16.c: Regenerate.
	* generated/maxloc1_4_i2.c: Regenerate.
	* generated/maxloc1_4_i4.c: Regenerate.
	* generated/maxloc1_4_i8.c: Regenerate.
	* generated/maxloc1_4_r10.c: Regenerate.
	* generated/maxloc1_4_r16.c: Regenerate.
	* generated/maxloc1_4_r4.c: Regenerate.
	* generated/maxloc1_4_r8.c: Regenerate.
	* generated/maxloc1_8_i1.c: Regenerate.
	* generated/maxloc1_8_i16.c: Regenerate.
	* generated/maxloc1_8_i2.c: Regenerate.
	* generated/maxloc1_8_i4.c: Regenerate.
	* generated/maxloc1_8_i8.c: Regenerate.
	* generated/maxloc1_8_r10.c: Regenerate.
	* generated/maxloc1_8_r16.c: Regenerate.
	* generated/maxloc1_8_r4.c: Regenerate.
	* generated/maxloc1_8_r8.c: Regenerate.
	* generated/maxval_i1.c: Regenerate.
	* generated/maxval_i16.c: Regenerate.
	* generated/maxval_i2.c: Regenerate.
	* generated/maxval_i4.c: Regenerate.
	* generated/maxval_i8.c: Regenerate.
	* generated/maxval_r10.c: Regenerate.
	* generated/maxval_r16.c: Regenerate.
	* generated/maxval_r4.c: Regenerate.
	* generated/maxval_r8.c: Regenerate.
	* generated/minloc0_16_i1.c: Regenerate.
	* generated/minloc0_16_i16.c: Regenerate.
	* generated/minloc0_16_i2.c: Regenerate.
	* generated/minloc0_16_i4.c: Regenerate.
	* generated/minloc0_16_i8.c: Regenerate.
	* generated/minloc0_16_r10.c: Regenerate.
	* generated/minloc0_16_r16.c: Regenerate.
	* generated/minloc0_16_r4.c: Regenerate.
	* generated/minloc0_16_r8.c: Regenerate.
	* generated/minloc0_4_i1.c: Regenerate.
	* generated/minloc0_4_i16.c: Regenerate.
	* generated/minloc0_4_i2.c: Regenerate.
	* generated/minloc0_4_i4.c: Regenerate.
	* generated/minloc0_4_i8.c: Regenerate.
	* generated/minloc0_4_r10.c: Regenerate.
	* generated/minloc0_4_r16.c: Regenerate.
	* generated/minloc0_4_r4.c: Regenerate.
	* generated/minloc0_4_r8.c: Regenerate.
	* generated/minloc0_8_i1.c: Regenerate.
	* generated/minloc0_8_i16.c: Regenerate.
	* generated/minloc0_8_i2.c: Regenerate.
	* generated/minloc0_8_i4.c: Regenerate.
	* generated/minloc0_8_i8.c: Regenerate.
	* generated/minloc0_8_r10.c: Regenerate.
	* generated/minloc0_8_r16.c: Regenerate.
	* generated/minloc0_8_r4.c: Regenerate.
	* generated/minloc0_8_r8.c: Regenerate.
	* generated/minloc1_16_i1.c: Regenerate.
	* generated/minloc1_16_i16.c: Regenerate.
	* generated/minloc1_16_i2.c: Regenerate.
	* generated/minloc1_16_i4.c: Regenerate.
	* generated/minloc1_16_i8.c: Regenerate.
	* generated/minloc1_16_r10.c: Regenerate.
	* generated/minloc1_16_r16.c: Regenerate.
	* generated/minloc1_16_r4.c: Regenerate.
	* generated/minloc1_16_r8.c: Regenerate.
	* generated/minloc1_4_i1.c: Regenerate.
	* generated/minloc1_4_i16.c: Regenerate.
	* generated/minloc1_4_i2.c: Regenerate.
	* generated/minloc1_4_i4.c: Regenerate.
	* generated/minloc1_4_i8.c: Regenerate.
	* generated/minloc1_4_r10.c: Regenerate.
	* generated/minloc1_4_r16.c: Regenerate.
	* generated/minloc1_4_r4.c: Regenerate.
	* generated/minloc1_4_r8.c: Regenerate.
	* generated/minloc1_8_i1.c: Regenerate.
	* generated/minloc1_8_i16.c: Regenerate.
	* generated/minloc1_8_i2.c: Regenerate.
	* generated/minloc1_8_i4.c: Regenerate.
	* generated/minloc1_8_i8.c: Regenerate.
	* generated/minloc1_8_r10.c: Regenerate.
	* generated/minloc1_8_r16.c: Regenerate.
	* generated/minloc1_8_r4.c: Regenerate.
	* generated/minloc1_8_r8.c: Regenerate.
	* generated/minval_i1.c: Regenerate.
	* generated/minval_i16.c: Regenerate.
	* generated/minval_i2.c: Regenerate.
	* generated/minval_i4.c: Regenerate.
	* generated/minval_i8.c: Regenerate.
	* generated/minval_r10.c: Regenerate.
	* generated/minval_r16.c: Regenerate.
	* generated/minval_r4.c: Regenerate.
	* generated/minval_r8.c: Regenerate.
	* generated/norm2_r10.c: Regenerate.
	* generated/norm2_r16.c: Regenerate.
	* generated/norm2_r4.c: Regenerate.
	* generated/norm2_r8.c: Regenerate.
	* generated/pack_c10.c: Regenerate.
	* generated/pack_c16.c: Regenerate.
	* generated/pack_c4.c: Regenerate.
	* generated/pack_c8.c: Regenerate.
	* generated/pack_i1.c: Regenerate.
	* generated/pack_i16.c: Regenerate.
	* generated/pack_i2.c: Regenerate.
	* generated/pack_i4.c: Regenerate.
	* generated/pack_i8.c: Regenerate.
	* generated/pack_r10.c: Regenerate.
	* generated/pack_r16.c: Regenerate.
	* generated/pack_r4.c: Regenerate.
	* generated/pack_r8.c: Regenerate.
	* generated/parity_l1.c: Regenerate.
	* generated/parity_l16.c: Regenerate.
	* generated/parity_l2.c: Regenerate.
	* generated/parity_l4.c: Regenerate.
	* generated/parity_l8.c: Regenerate.
	* generated/product_c10.c: Regenerate.
	* generated/product_c16.c: Regenerate.
	* generated/product_c4.c: Regenerate.
	* generated/product_c8.c: Regenerate.
	* generated/product_i1.c: Regenerate.
	* generated/product_i16.c: Regenerate.
	* generated/product_i2.c: Regenerate.
	* generated/product_i4.c: Regenerate.
	* generated/product_i8.c: Regenerate.
	* generated/product_r10.c: Regenerate.
	* generated/product_r16.c: Regenerate.
	* generated/product_r4.c: Regenerate.
	* generated/product_r8.c: Regenerate.
	* generated/reshape_c10.c: Regenerate.
	* generated/reshape_c16.c: Regenerate.
	* generated/reshape_c4.c: Regenerate.
	* generated/reshape_c8.c: Regenerate.
	* generated/reshape_i16.c: Regenerate.
	* generated/reshape_i4.c: Regenerate.
	* generated/reshape_i8.c: Regenerate.
	* generated/reshape_r10.c: Regenerate.
	* generated/reshape_r16.c: Regenerate.
	* generated/reshape_r4.c: Regenerate.
	* generated/reshape_r8.c: Regenerate.
	* generated/shape_i1.c: Regenerate.
	* generated/shape_i16.c: Regenerate.
	* generated/shape_i2.c: Regenerate.
	* generated/shape_i4.c: Regenerate.
	* generated/shape_i8.c: Regenerate.
	* generated/spread_c10.c: Regenerate.
	* generated/spread_c16.c: Regenerate.
	* generated/spread_c4.c: Regenerate.
	* generated/spread_c8.c: Regenerate.
	* generated/spread_i1.c: Regenerate.
	* generated/spread_i16.c: Regenerate.
	* generated/spread_i2.c: Regenerate.
	* generated/spread_i4.c: Regenerate.
	* generated/spread_i8.c: Regenerate.
	* generated/spread_r10.c: Regenerate.
	* generated/spread_r16.c: Regenerate.
	* generated/spread_r4.c: Regenerate.
	* generated/spread_r8.c: Regenerate.
	* generated/sum_c10.c: Regenerate.
	* generated/sum_c16.c: Regenerate.
	* generated/sum_c4.c: Regenerate.
	* generated/sum_c8.c: Regenerate.
	* generated/sum_i1.c: Regenerate.
	* generated/sum_i16.c: Regenerate.
	* generated/sum_i2.c: Regenerate.
	* generated/sum_i4.c: Regenerate.
	* generated/sum_i8.c: Regenerate.
	* generated/sum_r10.c: Regenerate.
	* generated/sum_r16.c: Regenerate.
	* generated/sum_r4.c: Regenerate.
	* generated/sum_r8.c: Regenerate.
	* generated/unpack_c10.c: Regenerate.
	* generated/unpack_c16.c: Regenerate.
	* generated/unpack_c4.c: Regenerate.
	* generated/unpack_c8.c: Regenerate.
	* generated/unpack_i1.c: Regenerate.
	* generated/unpack_i16.c: Regenerate.
	* generated/unpack_i2.c: Regenerate.
	* generated/unpack_i4.c: Regenerate.
	* generated/unpack_i8.c: Regenerate.
	* generated/unpack_r10.c: Regenerate.
	* generated/unpack_r16.c: Regenerate.
	* generated/unpack_r4.c: Regenerate.
	* generated/unpack_r8.c: Regenerate.

From-SVN: r243844
2016-12-21 10:26:14 +00:00
Francois-Xavier Coudert 71d9113f9b re PR libfortran/70311 (libgfortran build dies on "implicit declaration of function strncasecmp")
PR libfortran/70311
	* intrinsics/selected_char_kind.c: Include <strings.h> header.
	* runtime/environ.c: Include <strings.h> header.
	* runtime/string.c: Include <strings.h> header.

From-SVN: r243843
2016-12-21 09:49:40 +00:00
Francois-Xavier Coudert f7db9ebf2b iresolve.c (gfc_resolve_ftell): Call "ftell" instead of "ftell2".
* iresolve.c (gfc_resolve_ftell): Call "ftell" instead of "ftell2".

	* gfortran.map: Remove _gfortran_ftell2.
	* io/intrinsics.c (ftell): Remove.
	(ftell2): Rename to ftell.

From-SVN: r243841
2016-12-21 09:35:57 +00:00
Francois-Xavier Coudert 815ee97417 gfortran.map: Move all _gfortran_* __iso_c_binding_* symbols to GFORTRAN_7.
* gfortran.map: Move all _gfortran_* __iso_c_binding_* symbols
	to GFORTRAN_7. Rename F2C_1.0 to GFORTRAN_F2C_7. Move all C99
	compatibility symbols to GFORTRAN_C99_7.

From-SVN: r243839
2016-12-21 09:15:39 +00:00
Francois-Xavier Coudert 75b07bb45a trans-decl.c (create_main_function): Remove unused elements to the set_options call.
* trans-decl.c (create_main_function): Remove unused elements to
	the set_options call.

	* runtime/compile_options.c (set_options): Remove unused elements.

From-SVN: r243814
2016-12-19 22:29:43 +00:00
Janne Blomqvist 4daecdb623 Remove unused functions, take 2.
2016-12-19  Janne Blomqvist  <jb@gcc.gnu.org>

      * Actually remove files that should have been removed by r243799.
This line, and those below, will be ignored--

M    libgfortran/ChangeLog
D    libgfortran/generated/exponent_r10.c
D    libgfortran/generated/exponent_r16.c
D    libgfortran/generated/exponent_r4.c
D    libgfortran/generated/exponent_r8.c
D    libgfortran/generated/fraction_r10.c
D    libgfortran/generated/fraction_r16.c
D    libgfortran/generated/fraction_r4.c
D    libgfortran/generated/fraction_r8.c
D    libgfortran/generated/nearest_r10.c
D    libgfortran/generated/nearest_r16.c
D    libgfortran/generated/nearest_r4.c
D    libgfortran/generated/nearest_r8.c
D    libgfortran/generated/rrspacing_r10.c
D    libgfortran/generated/rrspacing_r16.c
D    libgfortran/generated/rrspacing_r4.c
D    libgfortran/generated/rrspacing_r8.c
D    libgfortran/generated/set_exponent_r10.c
D    libgfortran/generated/set_exponent_r16.c
D    libgfortran/generated/set_exponent_r4.c
D    libgfortran/generated/set_exponent_r8.c
D    libgfortran/generated/spacing_r10.c
D    libgfortran/generated/spacing_r16.c
D    libgfortran/generated/spacing_r4.c
D    libgfortran/generated/spacing_r8.c
D    libgfortran/generated/transpose_c10.c
D    libgfortran/generated/transpose_c16.c
D    libgfortran/generated/transpose_c4.c
D    libgfortran/generated/transpose_c8.c
D    libgfortran/generated/transpose_i16.c
D    libgfortran/generated/transpose_i4.c
D    libgfortran/generated/transpose_i8.c
D    libgfortran/generated/transpose_r10.c
D    libgfortran/generated/transpose_r16.c
D    libgfortran/generated/transpose_r4.c
D    libgfortran/generated/transpose_r8.c
D    libgfortran/intrinsics/malloc.c
D    libgfortran/intrinsics/transpose_generic.c
D    libgfortran/m4/exponent.m4
D    libgfortran/m4/fraction.m4
D    libgfortran/m4/nearest.m4
D    libgfortran/m4/rrspacing.m4
D    libgfortran/m4/set_exponent.m4
D    libgfortran/m4/spacing.m4
D    libgfortran/m4/transpose.m4

From-SVN: r243804
2016-12-19 18:20:09 +02:00
Francois-Xavier Coudert 03506f8cc3 trans.h: Remove gfor_fndecl_stop_numeric_f08.
* trans.h: Remove gfor_fndecl_stop_numeric_f08.
	* trans-decl.c: Remove gfor_fndecl_stop_numeric_f08.
	* trans-stmt.c (gfc_trans_stop): Use gfor_fndecl_stop_numeric
	instead of gfor_fndecl_stop_numeric_f08.

	* gfortran.map: Remove _gfortran_stop_numeric_f08.
	* runtime/stop.c: Rename stop_numeric_f08 into stop_numeric.

From-SVN: r243803
2016-12-19 16:09:12 +00:00
François-Xavier Coudert c52b53d629 * Makefile.in: Regenerate.
From-SVN: r243802
2016-12-19 16:04:19 +00:00
Francois-Xavier Coudert adc905cd6c Makefile.am: Remove ISO_C_BINDING runtime functions.
* Makefile.am: Remove ISO_C_BINDING runtime functions.
	* Makefile.in: Regenerate.
	* gfortran.map: Remove all __iso_c_binding_c_f_pointer_* symbols.
	* intrinsics/iso_c_binding.h: Remove.
	* intrinsics/iso_c_binding.c: Remove.
	* intrinsics/iso_c_generated_procs.c: Remove.

From-SVN: r243801
2016-12-19 16:03:53 +00:00
Francois-Xavier Coudert bed192f40a Makefile.am: Remove intrinsics/bit_intrinsics.c.
* Makefile.am: Remove intrinsics/bit_intrinsics.c.
	* Makefile.in: Regenerate.
	* gfortran.map: Remove _gfortran_clz128 and _gfortran_ctz128.
	* intrinsics/bit_intrinsics.c: Remove.

From-SVN: r243800
2016-12-19 16:00:42 +00:00
Janne Blomqvist 7e294024ad Remove unused libgfortran functions
Now that the libgfortran ABI major version has been bumped, we can
remove functions for which the frontend nowadays generates inline
code.

This removes the malloc, free, exponent, fraction, nearest, rrspacing,
spacing, set_exponent and transpose intrinsics. Also the unused
store_exe_path function is removed.

2016-12-19  Janne Blomqvist  <jb@gcc.gnu.org>

	* Makefile.am: Remove exponent, fraction, nearest, rrspacing,
	set_exponent, spacing, transpose, malloc, transpose_generic.
	* Makefile.in: Regenerate.
	* generated/exponent_r10.c: Remove.
	* generated/exponent_r16.c: Remove.
	* generated/exponent_r4.c: Remove.
	* generated/exponent_r8.c: Remove.
	* generated/fraction_r10.c: Remove.
	* generated/fraction_r16.c: Remove.
	* generated/fraction_r4.c: Remove.
	* generated/fraction_r8.c: Remove.
	* generated/nearest_r10.c: Remove.
	* generated/nearest_r16.c: Remove.
	* generated/nearest_r4.c: Remove.
	* generated/nearest_r8.c: Remove.
	* generated/rrspacing_r10.c: Remove.
	* generated/rrspacing_r16.c: Remove.
	* generated/rrspacing_r4.c: Remove.
	* generated/rrspacing_r8.c: Remove.
	* generated/set_exponent_r10.c: Remove.
	* generated/set_exponent_r16.c: Remove.
	* generated/set_exponent_r4.c: Remove.
	* generated/set_exponent_r8.c: Remove.
	* generated/spacing_r10.c: Remove.
	* generated/spacing_r16.c: Remove.
	* generated/spacing_r4.c: Remove.
	* generated/spacing_r8.c: Remove.
	* generated/transpose_c10.c: Remove.
	* generated/transpose_c16.c: Remove.
	* generated/transpose_c4.c: Remove.
	* generated/transpose_c8.c: Remove.
	* generated/transpose_i16.c: Remove.
	* generated/transpose_i4.c: Remove.
	* generated/transpose_i8.c: Remove.
	* generated/transpose_r10.c: Remove.
	* generated/transpose_r16.c: Remove.
	* generated/transpose_r4.c: Remove.
	* generated/transpose_r8.c: Remove.
	* gfortran.map: Remove exponent, fraction, nearest, rrspacing,
	set_exponent, spacing, transpose, malloc, free, transpose_generic,
	store_exe_path.
	* intrinsics/malloc.c: Remove.
	* intrinsics/transpose_generic.c: Remove.
	* libgfortran.h (store_exe_path): Remove.
	* m4/exponent.m4: Remove.
	* m4/fraction.m4: Remove.
	* m4/nearest.m4: Remove.
	* m4/rrspacing.m4: Remove.
	* m4/set_exponent.m4: Remove.
	* m4/spacing.m4: Remove.
	* m4/transpose.m4: Remove.
	* runtime/main.c (store_exe_path): Remove.

From-SVN: r243799
2016-12-19 17:32:17 +02:00
Francois-Xavier Coudert dc31c238bd chmod.c (chmod_internal): Fix case where mode_t is different from unsigned int.
* intrinsics/chmod.c (chmod_internal): Fix case where mode_t is
	different from unsigned int.

From-SVN: r243796
2016-12-19 13:41:32 +00:00
Dominique d'Humieres 1feb2bedae re PR fortran/78545 (Possible correction to online LTIME documentation)
2016-12-18  Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR fortran/78545
	* intrinsic.texi: Fix documentation for GMTIME and LTIME.

	* intrinsics/date_and_time.c: Fix comments for GMTIME and LTIME.

From-SVN: r243785
2016-12-18 19:03:36 +01:00
Jerry DeLisle 5cdc4b0ef0 re PR fortran/78662 ([F03] Incorrect parsing of quotes in the char-literal-constant of the DT data descriptor)
2016-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/78622
	* io.c (format_lex): Continue of string delimiter seen.

	* io/transfer.c (get_dt_format): New static function to alloc
	and set the DT iotype string, handling doubled quotes.
	(formatted_transfer_scalar_read,
	formatted_transfer_scalar_write): Use new function.

	* gfortran.dg/dtio_20.f03: New test.

From-SVN: r243765
2016-12-16 20:27:51 +00:00
Rainer Orth 66dbcf2d4d Disable hwcaps on libgfortran
libgfortran:
	* configure.ac: Call GCC_CHECK_LINKER_HWCAP.
	* Makefile.am (libgfortran_la_LDFLAGS): Add HWCAP_LDFLAGS.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

	config:
	* hwcaps.m4: New file.

	libitm:
	* acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Remove.
	* aclocal.m4: Regenerate.
	* configure.ac: Call GCC_CHECK_LINKER_HWCAP instead of
	LIBITM_CHECK_LINKER_HWCAP.

From-SVN: r243552
2016-12-12 13:40:21 +00:00
Thomas Koenig 31cfd83286 re PR libfortran/78379 (Processor-specific versions for matmul)
2016-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/78379
        * config/i386/cpuinfo.c:  Move denums for processor vendors,
        processor type, processor subtypes and declaration of
        struct __processor_model into
        * config/i386/cpuinfo.h:  New header file.
        * Makefile.am:  Add dependence of m4/matmul_internal_m4 to
        mamtul files..
        * Makefile.in:  Regenerated.
        * acinclude.m4:  Check for AVX, AVX2 and AVX512F.
        * config.h.in:  Add HAVE_AVX, HAVE_AVX2 and HAVE_AVX512F.
        * configure:  Regenerated.
        * configure.ac:  Use checks for AVX, AVX2 and AVX_512F.
        * m4/matmul_internal.m4:  New file. working part of matmul.m4.
        * m4/matmul.m4:  Implement architecture-specific switching
        for AVX, AVX2 and AVX512F by including matmul_internal.m4
        multiple times.
        * generated/matmul_c10.c: Regenerated.
        * generated/matmul_c16.c: Regenerated.
        * generated/matmul_c4.c: Regenerated.
        * generated/matmul_c8.c: Regenerated.
        * generated/matmul_i1.c: Regenerated.
        * generated/matmul_i16.c: Regenerated.
        * generated/matmul_i2.c: Regenerated.
        * generated/matmul_i4.c: Regenerated.
        * generated/matmul_i8.c: Regenerated.
        * generated/matmul_r10.c: Regenerated.
        * generated/matmul_r16.c: Regenerated.
        * generated/matmul_r4.c: Regenerated.
        * generated/matmul_r8.c: Regenerated.

From-SVN: r243219
2016-12-03 09:44:35 +00:00
Andre Vehreschild 8fb75185a2 single.c (_gfortran_caf_get_by_ref): Prevent compile time warning.
libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

        * caf/single.c (_gfortran_caf_get_by_ref): Prevent compile time
        warning.
        (_gfortran_caf_send_by_ref): Same.
        (_gfortran_caf_is_present): Prevent fallthrough warnings.

gcc/testsuite/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* ChangeLog: Removed wrongly placed entry.
	* gfortran.dg/coarray_lib_alloc_4.f90: New test.

From-SVN: r243034
2016-11-30 16:59:07 +01:00
Andre Vehreschild 9a0f271862 single.c (_gfortran_caf_is_present): Prevent fallthrough warnings.
libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/single.c (_gfortran_caf_is_present): Prevent fallthrough
	warnings.

From-SVN: r243024
2016-11-30 15:34:13 +01:00
Andre Vehreschild ba85c8c3fc libcaf.h: Add new action types for (de-)registration of allocatable components in derived...
libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/libcaf.h: Add new action types for (de-)registration of
	allocatable components in derived type coarrays.  Add _caf_is_present
	prototype.
	* caf/single.c (_gfortran_caf_register): Add support for registration
	only and allocation of already registered allocatable components in
	derived type coarrays.
	(_gfortran_caf_deregister): Add mode to deallocate but not deregister
	an allocatable component in a derived type coarray.
	(_gfortran_caf_is_present): New function.  Query whether an
	allocatable component in a derived type coarray on a remote image is
	allocated.


gcc/testsuite/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* gfortran.dg/coarray/alloc_comp_1.f90: Fix tree-dump scans to adhere
	to the changed interfaces.
	* gfortran.dg/coarray_alloc_comp_1.f08: Likewise.
	* gfortran.dg/coarray_allocate_7.f08: Likewise.
	* gfortran.dg/coarray_lib_alloc_1.f90: Likewise.
	* gfortran.dg/coarray_lib_alloc_2.f90: Likewise.
	* gfortran.dg/coarray_lib_alloc_3.f90: Likewise.
	* gfortran.dg/coarray_lib_comm_1.f90: Likewise.
	* gfortran.dg/coarray_lib_alloc_4.f90: New test.

gcc/fortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* check.c (gfc_check_allocated): By pass the caf_get call and check on
	the array.
	* gfortran.h: Add optional flag to gfc_caf_attr.
	* gfortran.texi: Document new enum values and _caf_is_present function.
	* primary.c (caf_variable_attr): Add optional flag to indicate that the
	expression is reffing a component.
	(gfc_caf_attr): Likewise.
	* trans-array.c (gfc_array_deallocate): Handle deallocation mode for
	coarray deregistration.
	(gfc_trans_dealloc_allocated): Likewise.
	(duplicate_allocatable): Use constants instead of
        creating custom constant tree node of zero or one.  Use gfc_add_modify
        convenience function.
	(duplicate_allocatable_coarray): This function is similar to
	duplicate_allocatable but tailored to handle coarrays.
	(caf_enabled): Check whether in-derived-type coarray processing is
	enabled.
	(caf_in_coarray): Check that in-derived-type coarray processing is
	enabled and currently in a derived-typed coarray.
	(gfc_caf_is_dealloc_only): Return true, when deallocate only is
	desired for components in derived typed coarrays.
	(structure_alloc_comps): A mode for handling coarrays, that is no
	longer encode in the purpose.  This makes the use cases of the
	routine more flexible without repeating.  Allocatable components in
	derived type coarrays are now registered only when nullifying an
	object and allocated before copying data into them.
	(gfc_nullify_alloc_comp): Use the caf_mode of structure_alloc_comps
	now.
	(gfc_deallocate_alloc_comp): Likewise.
	(gfc_deallocate_alloc_comp_no_caf): Likewise.
	(gfc_reassign_alloc_comp_caf): Likewise.
	(gfc_copy_alloc_comp): Likewise.
	(gfc_copy_only_alloc_comp): Likewise.
	(gfc_alloc_allocatable_for_assignment): Make use to the cheaper way of
	reallocating a coarray without deregistering and reregistering it.
	(gfc_trans_deferred_array): Initialize the coarray token correctly for
	deferred variables and tear them down on exit.
	* trans-array.h: Change some prototypes to add the coarray (de-)
	registration modes.  Add prototype for checking if deallocate only is
	selected for components in derived typed coarrays.
	* trans-decl.c (gfc_build_builtin_function_decls): Generate the
	declarations for the changed/new caf-lib routines.
	(gfc_trans_deferred_vars): Ensure deferred variables are (de-)
	registered correctly on procedure entry/exit.
	(generate_coarray_sym_init): Use constants.
	* trans-expr.c (gfc_conv_procedure_call): Propagate coarray allocation
	modes accordingly.
	(gfc_trans_alloc_subarray_assign): Likewise.
	(gfc_trans_subcomponent_assign): Likewise.
	(gfc_trans_structure_assign): Generate code to register the components
	of a derived type coarray prior to initialization.
	(gfc_conv_structure): Set flag that the structure is in a coarray.
	(gfc_trans_scalar_assign): Add flag to indicate being in a coarray and
	set the structure_alloc_comps modes correctly.
	(gfc_trans_assignment_1): Figure being in a coarray expression.
	* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Adapt to new
	structure_alloc_comps interface.
	(conv_caf_send): Use the old API as long as possible.
	(trans_caf_is_present): Generate code to check whether an allocatable
	component in a derived typed coarray is allocated on a remote image.
	(caf_this_image_ref): Return true, when only reffing this image.
	(gfc_conv_allocated): Convert allocated queries on allocatable
	components to the library API.
	(conv_intrinsic_move_alloc): Adapt to new interface of
	structure_alloc_comps.
	* trans-openmp.c (gfc_walk_alloc_comps): Likewise.
	(gfc_omp_clause_assign_op): Likewise.
	(gfc_omp_clause_dtor): Likewise.
	* trans-stmt.c (gfc_trans_deallocate): Figure which mode to use when
	deallocating allocatable components in derived type coarras.
	* trans.c (gfc_allocate_using_lib): Renamed to
	gfc_allcate_using_caf_lib.
	(gfc_allocate_allocatable): Set the registration mode/type of caf-
	register calls adapting to all the possible allocatable objects.
	(gfc_deallocate_with_status): Add deregistration mode for allocatable
	components in derived type coarrays.
	(gfc_deallocate_scalar_with_status): Likewise.
	* trans.h (enum gfc_coarray_type): Renamed to gfc_coarray_regtype to
	avoid collision with gfc_coarray_deregtype.

From-SVN: r243021
2016-11-30 14:27:49 +01:00
Jerry DeLisle d174eb6541 re PR libfortran/51119 (MATMUL slow for large matrices)
2016-11-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/51119
	* Makefile.am: Remove -fno-protect-parens -fstack-arrays.
	* Makefile.in: Regenerate.

From-SVN: r242518
2016-11-16 21:54:25 +00:00
Szabolcs Nagy 0af3095468 [PR libgfortran/78314] Fix ieee_support_halting
ieee_support_halting only checked the availability of status
flags, not trapping support.  On some targets the later can
only be checked at runtime: feenableexcept reports if
enabling traps failed.

So check trapping support by enabling/disabling it.

Updated the test that enabled trapping to check if it is
supported.

gcc/testsuite/

	PR libgfortran/78314
	* gfortran.dg/ieee/ieee_6.f90: Use ieee_support_halting.

libgfortran/

	PR libgfortran/78314
	* config/fpu-glibc.h (support_fpu_trap): Use feenableexcept.

From-SVN: r242505
2016-11-16 17:27:04 +00:00
Jerry DeLisle 5d70ab07b6 [multiple changes]
2016-11-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libgfortran/51119
	* Makefile.am: Add new optimization flags matmul.
	* Makefile.in: Regenerate.
	* m4/matmul.m4: For the case of all strides = 1, implement a
	fast blocked matrix multiply. Fix some whitespace.
	* generated/matmul_c10.c: Regenerate.
	* generated/matmul_c16.c: Regenerate.
	* generated/matmul_c4.c: Regenerate.
	* generated/matmul_c8.c: Regenerate.
	* generated/matmul_i1.c: Regenerate.
	* generated/matmul_i16.c: Regenerate.
	* generated/matmul_i2.c: Regenerate.
	* generated/matmul_i4.c: Regenerate.
	* generated/matmul_i8.c: Regenerate.
	* generated/matmul_r10.c: Regenerate.
	* generated/matmul_r16.c: Regenerate.
	* generated/matmul_r4.c: Regenerate.
	* generated/matmul_r8.c: Regenerate.

2016-11-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libgfortran/51119
	* gfortran.dg/matmul_12.f90: New test case.

From-SVN: r242462
2016-11-15 23:03:00 +00:00
Matthias Klose 84c1b9d3d4 config-ml.in: Remove references to GCJ.
<toplevel>

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* config-ml.in: Remove references to GCJ.
	* configure.ac: Likewise.
	* configure: Regenerate.

config/

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	multi.m4: Don't set GCJ.

gcc/

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Remove references to gcj/libjava.
	* doc/invoke.texi: Likewise.

*/ (where necessary)

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* configure: Regenerate.

From-SVN: r242433
2016-11-15 16:34:02 +00:00
Fritz Reese 6869e9c69f Default missing exponents to 0 with -fdec.
gcc/fortran/
	* gfortran.texi: Document.
	* gfortran.h (gfc_dt): New field default_exp.
	* primary.c (match_real_constant): Default exponent with -fdec.
	* io.c (match_io): Set dt.default_exp with -fdec.
	* ioparm.def (IOPARM_dt_default_exp): New.
	* trans-io.c (build_dt): Set IOPARM_dt_default_exp with -fdec.

	libgfortran/io/
	* io.h (IOPARM_DT_DEFAULT_EXP): New flag bit.
	* list_read.c (parse_real, read_real): Allow omission of exponent with
	IOPARM_DT_DEFAULT_EXP.
	* read.c (read_f): Ditto.

	gcc/testsuite/gfortran.dg/
	* dec_exp_1.f90, dec_exp_2.f90, dec_exp_3.f90: New testcases.

From-SVN: r241828
2016-11-03 18:09:44 +00:00
Jerry DeLisle 120a4c4573 re PR fortran/54679 (Erroneous "Expected P edit descriptor" in conjunction with L descriptor)
2016-10-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/54679
	* io.c (check_format): Adjust checks for FMT_L to treat a zero
	width as an extension, giving warnings or error as appropriate.
	Improve messages.
	PR libgfortran/54679
	* io/format.c (parse_format_list): Adjust checks for FMT_L to
	treat a zero width as an extension, giving warnings or error
	as appropriate. Improve messages.
	PR fortran/54679
	* gfortran.dg/fmt_l.f90: Update test.
	* gfortran.dg/fmt_l0.f90: New test.

From-SVN: r241720
2016-10-31 19:59:04 +00:00
Jerry DeLisle d4fc670294 re PR libfortran/78123 (Short reads with T edit descriptor not padding correctly)
2016-10-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/78123
	* io/transfer.c (formatted_transfer_scalar_read): Clear seen_eor
	only if we have tabbed to left of current position.

	* gfortran.dg/fmt_t_9.f: New test.

From-SVN: r241691
2016-10-30 22:14:01 +00:00
Fritz Reese 0ef33d4462 New I/O specifiers CARRIAGECONTROL, READONLY, SHARE with -fdec.
gcc/fortran/
	* gfortran.texi: Document.
	* frontend-passes.c (gfc_code_walker): Add SHARE and CARRIAGECONTROL.
	* io.c (gfc_free_open, gfc_resolve_open, gfc_match_open): Ditto.
	* gfortran.h (gfc_open): Add SHARE, CARRIAGECONTROL, and READONLY.
	* io.c (io_tag, match_open_element): Ditto.
	* ioparm.def: Ditto.
	* trans-io.c (gfc_trans_open): Ditto.
	* io.c (match_dec_etag, match_dec_ftag): New functions.

	libgfortran/io/
	* libgfortran.h (IOPARM_OPEN_HAS_READONLY, IOPARM_OPEN_HAS_SHARE,
	IOPARM_OPEN_HAS_CC): New for READONLY, SHARE, and CARRIAGECONTROL.
	* close.c (st_close): Support READONLY.
	* io.h (st_parameter_open, unit_flags): Support SHARE, CARRIAGECONTROL,
	and READONLY.
	* open.c (st_open): Ditto.
	* transfer.c (data_transfer_init): Ditto.
	* io.h (st_parameter_dt): New member 'cc' for CARRIAGECONTROL.
	* write.c (write_check_cc, write_cc): New functions for CARRIAGECONTROL.
	* transfer.c (next_record_cc): Ditto.
	* file_pos.c (st_endfile): Support SHARE and CARRIAGECONTROL.
	* io.h (st_parameter_inquire): Ditto.
	* open.c (edit_modes, new_unit): Ditto.
	* inquire.c (inquire_via_unit, inquire_via_filename): Ditto.
	* io.h (unit_share, unit_cc, cc_fortran, IOPARM_INQUIRE_HAS_SHARE,
	IOPARM_INQUIRE_HAS_CC): New for SHARE and CARRIAGECONTROL.
	* open.c (share_opt, cc_opt): Ditto.
	* read.c (read_x): Support CARRIAGECONTROL.
	* transfer.c (read_sf, next_record_r, next_record_w): Ditto.
	* write.c (list_formatted_write_scalar, write_a): Ditto.
	* unix.h (close_share): New prototype.
	* unix.c (open_share, close_share): New functions to handle SHARE.
	* unix.c (open_external): Handle READONLY. Call open_share.
	* close.c (st_close): Call close_share.

	gcc/testsuite/
	* dec_io_1.f90: New test.
        * dec_io_2.f90: New test.
        * dec_io_3.f90: New test.
        * dec_io_4.f90: New test.
        * dec_io_5.f90: New test.
        * dec_io_6.f90: New test.

From-SVN: r241550
2016-10-26 12:11:44 +00:00
Jerry DeLisle 13926b249f re PR libfortran/77828 (Linking gfortran-7 compiled program with libgfortran of 5.x allowed but crashes when containing write to string)
2016-10-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/77828
	* io/io.h (st_parameter_dt): Reorder for readability and sanity.
	* io/transfer.c (data_transfer_init): Remove TODO and enable the
	runtime error message, rec= specifier not allowed in STREAM
	access.
	* libtool-version: Bump major version of libgfortran to 4.

	* ioparm.def: Reorder dt parameters to match libgfortran.
	* libgfortran.h: Swap definitions of GFC_INTERNAL_UNIT and
	GFC_INTERNAL_UNIT4.

From-SVN: r241497
2016-10-24 21:42:29 +00:00
Jerry DeLisle 8b729f5c8f re PR libfortran/78055 (Many new gfortran test failures)
2016-10-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/78055
	* io/io.h (st_parameter_dt): Restore GFC_IO_INT to maintain
	alignment.

From-SVN: r241422
2016-10-21 18:02:32 +00:00
Jerry DeLisle bdff7e518b transfer.c (finalize_transfer): Free format data in child procedures.
2016-10-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io/transfer.c (finalize_transfer): Free format data in child
	procedures. (st_read_done, st_write_done): Don't free format
	hash table.

From-SVN: r241392
2016-10-21 01:41:03 +00:00
Jerry DeLisle c680ada5f5 re PR fortran/48298 ([F03] User-Defined Derived-Type IO (DTIO))
2016-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/48298
	* io/io.h: Move size_used from dtp to unit structure. Add bool
	has_size to unit structure.
	* read.c (read_x): Use has_size and size_used.
	* transfer.c (read_sf_internal,read_sf,read_block_form,
	read_block_form4): Likewise.
	(data_transfer_init): If parent, initialize the size variables.
	(finalize_transfer): Set the size variable using size_used in
	gfc_unit. (write_block): Delete bogus/dead code.

	* gfortran.dg/dtio_17.f90: New test.

From-SVN: r241294
2016-10-18 04:14:25 +00:00
Janne Blomqvist 9937c1eb72 PR 48587 Newunit allocator, cleanup
Improve error message, and remove a redundant check, as the same check is
done a bit earlier due to the PR 48587 patch.

2016-10-16  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/48587
        * io/transfer.c (data_transfer_init): Improve error message,
        remove redundant check.

Regtested on x86_64-pc-linux-gnu.

From-SVN: r241211
2016-10-16 09:28:15 +03:00
Janne Blomqvist c04d4ede17 PR 48587 Newunit allocator
Currently GFortran newer reuses unit numbers allocated with NEWUNIT=,
instead having a simple counter that is decremented each time such a
unit is opened.  For a long running program which repeatedly opens
files with NEWUNIT= and closes them, the counter can wrap around and
cause an abort.  This patch replaces the counter with an allocator
that keeps track of which units numbers are allocated, and can reuse
them once they have been deallocated.  Since operating systems tend to
limit the number of simultaneous open files for a process to a
relatively modest number, a relatively simple approach with a linear
scan through an array suffices.  Though as a small optimization there
is a low water indicator keeping track of the index for which all unit
numbers below are already allocated.  This linear scan also ensures
that we always allocate the smallest available unit number.

2016-10-15  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/48587
        * io/io.h (get_unique_unit_number): Remove prototype.
        (newunit_alloc): New prototype.
        * io/open.c (st_open): Call newunit_alloc.
        * io/unit.c (newunits,newunit_size,newunit_lwi): New static
        variables.
        (GFC_FIRST_NEWUNIT): Rename to NEWUNIT_START.
        (next_available_newunit): Remove variable.
        (get_unit): Call newunit_alloc, don't try to create negative
        external unit.
        (close_unit_1): Call newunit_free.
        (close_units): Free newunits array.
        (get_unique_number): Remove function.
        (newunit_alloc): New function.
        (newunit_free): New function.
        * io/transfer.c (data_transfer_init): Check for invalid unit
        number.

testsuite ChangeLog:

2016-10-15  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/48587
        * gfortran.dg/negative_unit2.f90: New testcase.

From-SVN: r241199
2016-10-15 16:14:15 +03:00
Janne Blomqvist b923394429 PR 67585 Handle EINTR
Many POSIX systems have the bad habit of not restarting interrupted
syscalls. On these systems it's up to the user to check for an error
with errno == EINTR and restart manually. This patch does this for
libgfortran, so that GFortran users don't have to do it.

2016-10-09  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/67585
        * io/io.h: TEMP_FAILURE_RETRY: Define macro if not found.
        * io/unix.c (raw_read): Handle EINTR.
        (raw_write): Check for return value -1.
        (raw_seek): Handle EINTR.
        (raw_tell): Likewise.
        (raw_size): Likewise.
        (raw_truncate): Likewise.
        (raw_close): Likewise.
        (buf_flush): Call raw_seek instead of lseek.
        (buf_read): Likewise.
        (buf_write): Likewise.
        (fd_to_stream): Handle EINTR.
        (tempfile_open): Likewise.
        (regular_file2): Likewise.
        (compare_file_filename): Likewise.
        (find_file): Likewise.
        (inquire_sequential): Likewise.
        (inquire_direct): Likewise.
        (inquire_formatted): Likewise.

From-SVN: r240902
2016-10-09 21:05:56 +03:00
Jerry DeLisle a40278c3e3 re PR libfortran/77868 (Fail to NULL guard check for internal unit in inquire_via_unit)
2016-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/77868
	* io/inquire.c (inquire_via_unit): NULL guard the check for
	internal unit passed into child IO procedure.

	* gfortran.dg/dtio_15.f90: Fix spaces in dg-do.
	* gfortran.dg/class_array_20.f03: Likewise.
	* gfortran.dg/class_array_21.f03: Likewise.
	* gfortran.dg/finalize_29.f08: Likewise.
	* gfortran.dg/unlimited_polymorphic_23.f90: Likewise.

From-SVN: r240794
2016-10-05 16:32:24 +00:00
Jerry DeLisle ddd12b5fb0 2016-10-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
io/inquire.c (inquire_via_unit): Add check for internal unit
	passed into child IO procedure.

From-SVN: r240768
2016-10-05 04:39:33 +00:00
Andre Vehreschild 0f0565b143 re PR libfortran/77663 (libgfortran/caf/single.c: three minor problems and a lost token)
gcc/testsuite/ChangeLog:

2016-10-01  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/77663
	* gfortran.dg/coarray_send_by_ref_1.f08: New test.

libgfortran/ChangeLog:

2016-10-01  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/77663
	* caf/single.c (caf_internal_error): Fix not terminating va-list.
	(_gfortran_caf_register): Free memory also when other allocs failed.
	(_gfortran_caf_get_by_ref): Fixed style.
	(send_by_ref): Token is now stored at the correct position preventing
	inaccessible tokens, memory loss and possibly crashes.

From-SVN: r240695
2016-10-01 16:00:57 +02:00
Jerry DeLisle b89f743da8 re PR fortran/77707 (formatted direct access: nextrec off by one)
2016-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/77707
	io/transfer.c (next_record): Flush before calculating next_record.
	Correctly calculate.

From-SVN: r240592
2016-09-28 19:38:03 +00:00
Jerry DeLisle 4a8d4422b0 re PR fortran/48298 ([F03] User-Defined Derived-Type IO (DTIO))
2016-09-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/48298
	* io/inquire.c (inquire_via_unit): Adjust error check for the
	two possible internal unit KINDs.
	* io/io.h: Adjust defines for is_internal_unit and
	is_char4_unit. (gfc_unit): Add internal unit data to structure.
	(get_internal_unit): Change declaration to set_internal_unit.
	(free_internal_unit): Change name to stash_internal_unit_number.
	(get_unique_unit_number): Adjust parameter argument.
	Define IOPARM_DT_HAS_UDTIO. (gfc_saved_unit): New structure.
	* io/list_read.c (next_char_internal): Use is_char4_unit.
	* io/open.c (st_open): Adjust call to get_unique_unit_number.
	* io/transfer.c (write_block): Use is_char4_unit.
	(data_transfer_init): Update check for unit numbers.
	(st_read_done): Free the various allocated memories used for the
	internal units and stash the negative unit number and pointer to unit
	structure to allow reuse. (st_write_done): Likewise stash the freed
	unit.
	* io/unit.c: Create a fixed size buffer of 16 gfc_saved_unit's to use
	as a stack to save newunit unit numbers and unit structure for reuse.
	(get_external_unit): Change name to get_gfc_unit to better
	reflect what it does. (find_unit): Change call to get_gfc_unit.
	(find_or_create_unit): Likewise. (get_internal_unit): Change
	name to set_internal_unit. Move internal unit from the dtp
	structure to the gfc_unit structure so that it can be passed to
	child I/O statements through the UNIT.
	(free_internal_unit): Change name to stash_internal_unit_number.
	Push the common.unit number onto the newunit stack, saving it
	for possible reuse later. (get_unit): Set the internal unit
	KIND. Use get_unique_unit_number to get a negative unit number
	for the internal unit. Use get_gfc_unit to get the unit structure
	and use set_internal_unit to initialize it.
	(init_units): Initialize the newunit stack.
	(get_unique_unit_number): Check the stack for an available unit
	number and use it. If none there get the next most negative
	number. (close_units): Free any unit structures pointed to from the save
	stack.

2016-09-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/48298
	* gfortran.h (gfc_dt): Add *udtio.
	* ioparm.def: Add bit IOPARM_dt_f2003 to align with library use of bit
	25. Add IOPARM_dt_dtio bit to common flags.
	* resolve.c (resolve_transfer): Set dt->udtio to expression.
	* io.c (gfc_match_inquire): Adjust error message for internal
	unit KIND.
	* libgfortran.h: Adjust defines for GFC_INTERNAL_UNIT4,
	GFC_INTERNAL_UNIT, and GFC_INVALID_UNIT.
	* trans-io.c (build_dt): Set common_unit to reflect the KIND of
	the internal unit. Set mask bit for presence of dt->udtio.

2016-09-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/48298
	* gfortran.dg/negative_unit_check.f90: Update test.
	* gfortran.dg/dtio_14.f90: New test.

From-SVN: r240456
2016-09-23 20:36:21 +00:00
Janne Blomqvist 9ad5c32a21 Use rand_s on MinGW-w64, fix array bound overflow.
2016-09-21  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/random.c (getosrandom): Use rand_s() on
	MinGW-w64. Fix bounds overflow in fallback code.

From-SVN: r240309
2016-09-21 13:07:06 +03:00
Andre Vehreschild 3c9f5092c6 libcaf.h: Add caf_reference_type.
libgfortran/ChangeLog:

2016-09-19  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/libcaf.h: Add caf_reference_type.
	* caf/mpi.c: Adapted signature of caf_register().
	* caf/single.c (struct caf_single_token): Added to keep the pointer
	to the memory registered and array descriptor.
	(caf_internal_error): Added convenience interface.
	(_gfortran_caf_register): Adapted to work with caf_single_token and
	return memory in the array descriptor.
	(_gfortran_caf_deregister): Same.
	(assign_char1_from_char4): Fixed style.
	(convert_type): Fixed incorrect conversion.
	(_gfortran_caf_get): Adapted to work with caf_single_token.
	(_gfortran_caf_send): Same.
	(_gfortran_caf_sendget): Same.
	(copy_data): Added to stop repeating it in all _by_ref functions.
	(get_for_ref): Recursive getting of coarray data using a chain of
	references.
	(_gfortran_caf_get_by_ref): Driver for computing the memory needed for
	the get and checking properties of the operation.
	(send_by_ref): Same as get_for_ref but for sending data.
	(_gfortran_caf_send_by_ref): Same like caf_get_by_ref but for sending.
	(_gfortran_caf_sendget_by_ref): Uses get_by_ref and send_by_ref to
	implement sendget for reference chains.
	(_gfortran_caf_atomic_define): Adapted to work with caf_single_token.
	(_gfortran_caf_atomic_ref): Likewise.
	(_gfortran_caf_atomic_cas): Likewise.
	(_gfortran_caf_atomic_op): Likewise.
	(_gfortran_caf_event_post): Likewise.
	(_gfortran_caf_event_wait): Likewise.
	(_gfortran_caf_event_query): Likewise.
	(_gfortran_caf_lock): Likewise.
	(_gfortran_caf_unlock): Likewise.


gcc/testsuite/ChangeLog:

2016-09-19  Andre Vehreschild  <vehre@gcc.gnu.org>

	* gfortran.dg/coarray/alloc_comp_4.f90: New test.
	* gfortran.dg/coarray_38.f90:
	* gfortran.dg/coarray_alloc_comp_1.f08: New test.
	* gfortran.dg/coarray_alloc_comp_2.f08: New test.
	* gfortran.dg/coarray_allocate_7.f08: New test.
	* gfortran.dg/coarray_allocate_8.f08: New test.
	* gfortran.dg/coarray_allocate_9.f08: New test.
	* gfortran.dg/coarray_lib_alloc_1.f90: Adapted scan-tree-dumps to expect
	new caf_register.
	* gfortran.dg/coarray_lib_alloc_2.f90: Same.
	* gfortran.dg/coarray_lib_alloc_3.f90: Same.
	* gfortran.dg/coarray_lib_comm_1.f90: Adapted scan-tree-dumps to expect
	get_by_refs.
	* gfortran.dg/coarray_lib_token_3.f90: Same as for coarray_lib_alloc2.
	* gfortran.dg/coarray_lock_7.f90: Same.
	* gfortran.dg/coarray_poly_5.f90: Same.
	* gfortran.dg/coarray_poly_6.f90: Same.
	* gfortran.dg/coarray_poly_7.f90: Same.
	* gfortran.dg/coarray_poly_8.f90: Same.
	* gfortran.dg/coindexed_1.f90: Changed errors expected.

gcc/fortran/ChangeLog:

2016-09-19  Andre Vehreschild  <vehre@gcc.gnu.org>

	* expr.c (gfc_check_assign): Added flag to control whether datatype
	conversion is allowed.
	* gfortran.h: Added caf-token-tree to gfc_component.  Changed
	prototypes mostly to add whether datatype conversion is allowed.
	* gfortran.texi: Added documentation for the caf_reference_t and the
	caf_*_by_ref function.
	* primary.c (caf_variable_attr): Similar to gfc_variable_attr but
	focused on the needs of coarrays.
	(gfc_caf_attr): Same.
	* resolve.c (resolve_ordinary_assign): Set the conversion allowed
	flag when not in a coarray.
	* trans-array.c (gfc_array_init_size): Moved setting of array
	descriptor's datatype before the alloc, because caf_register needs it.
	(gfc_array_allocate): Changed notion of whether an array is a coarray.
	(gfc_array_deallocate): Same.
	(gfc_alloc_allocatable_for_assignment): Added setting of coarray's
	array descriptor datatype before the register.  And using deregister/
	register to mimmick a realloc for coarrays.
	* trans-decl.c (gfc_build_builtin_function_decls): Corrected signatures
	of old caf-functions and added signature definitions of the _by_ref
	ones.
	(generate_coarray_sym_init): Adapted to new caf_register signature.
	* trans-expr.c (gfc_conv_scalar_to_descriptor): Make sure a constant
	is translated to an lvalue expression before use in an array
	descriptor.
	(gfc_get_ultimate_alloc_ptr_comps_caf_token): New function.  Get the
	last allocatable component's coarray token.
	(gfc_get_tree_for_caf_expr): For top-level object get the coarray
	token and check for unsupported features.
	(gfc_get_caf_token_offset): Getting the offset might procude new
	statements, which now are stored in the pre and post of the current se.
	(gfc_caf_get_image_index): For this image return a call to
	caf_this_image.
	(expr_may_alias_variables): Check that the result is set for testing
	its properties.
	(alloc_scalar_allocatable_for_assignment): Added auto allocation of
	coarray components.
	(gfc_trans_assignment_1): Rewrite an assign to a coarray object to
	be a sendget.
	* trans-intrinsic.c (conv_caf_vector_subscript_elem): Corrected
	wrong comment.
	(compute_component_offset): Compute the correct offset a structure
	member.
	(conv_expr_ref_to_caf_ref): Convert to a chain of refs into
	caf_references.
	(gfc_conv_intrinsic_caf_get): Call caf_get_by_ref instead of caf_get.
	(conv_caf_send): Call caf_*_by_ref for coarrays that need
	reallocation.
	(gfc_conv_intrinsic_function): Adapted to new signuature of the caf
	drivers.
	(conv_intrinsic_atomic_op): Add pre and post statements correctly.
	(conv_intrinsic_atomic_ref): Same.
	(conv_intrinsic_atomic_cas): Same.
	(conv_intrinsic_event_query): Same.
	* trans-stmt.c (gfc_trans_lock_unlock): Same.
	(gfc_trans_event_post_wait): Same.
	(gfc_trans_allocate): Support allocation of allocatable coarrays.
	(gfc_trans_deallocate): And there deallocation.
	* trans-types.c (gfc_typenode_for_spec): Added flag to control whether
	a component is part of coarray.  When so, then add space to store a
	coarray token.
	(gfc_build_array_type): Same.
	(gfc_get_array_descriptor_base): Same.
	(gfc_get_array_type_bounds): Same.
	(gfc_sym_type): Same.
	(gfc_get_derived_type): Same.
	(gfc_get_caf_reference_type): Declare the caf_reference_type.
	* trans-types.h: Prototype changes only.
	* trans.c (gfc_allocate_using_lib): Use the updated caf_register
	signature.
	(gfc_allocate_allocatable): Same.
	(gfc_deallocate_with_status): Same.
	* trans.h: Defined the runtime types for caf_reference_t and the enums.

From-SVN: r240231
2016-09-19 15:45:40 +02:00
Steven G. Kargl 8a92685e53 re PR fortran/77507 (gfortran rejects keyworded calls to procedures from intrinsic modules)
2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77507
	* intrinsic.c (add_functions):  Use correct keyword.

2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77507
 	* ieee/ieee_arithmetic.F90 (IEEE_VALUE_4,IEEE_VALUE_8,IEEE_VALULE_10,
	IEEE_VALUE_16):  Use correct keyword.

2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77507
	* gfortran.dg/pr77507.f90: New test.

From-SVN: r240050
2016-09-09 17:57:11 +00:00
Jerry DeLisle 0076b5dc3b Fix dates on changelog
From-SVN: r240019
2016-09-06 23:22:36 +00:00
Jerry DeLisle 5dcf68f510 re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
2016-09-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/77393
	* io/write_float.def (build_float_string): Recognize when the
	result will not fit in the user provided, star fill, and exit
	early.

	* gfortran.dg/fmt_f0_2.f90: Update test.
	* gfortran.dg/fmt_f0_3.f90: New test.

From-SVN: r240018
2016-09-06 23:22:26 +00:00
Jerry DeLisle d775696046 re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/77393
	* io/write.c (kind_from_size): New function to calculate required buffer
	size based on kind type. (select_buffer, select_string): Use new
	function. (write_float_0, write_real, write_real_g0, write_complex):
	Adjust calls to pass parameters needed by new function.

From-SVN: r239900
2016-08-31 17:45:26 +00:00
Paul Thomas e73d3ca6d1 [multiple changes]
2016-08-31  Paul Thomas  <pault@gcc.gnu.org>
	Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/48298

	* decl.c (access_attr_decl): Include case INTERFACE_DTIO as
	appropriate.
	* gfortran.h : Add INTRINSIC_FORMATTED and
	INTRINSIC_UNFORMATTED to gfc_intrinsic_op. Add INTERFACE_DTIO
	to interface type. Add new enum 'dtio_codes'. Add bitfield
	'has_dtio_procs' to symbol_attr. Add prototypes
	'gfc_check_dtio_interfaces' and 'gfc_find_specific_dtio_proc'.
	* interface.c (dtio_op): New function.
	(gfc_match_generic_spec): Match generic DTIO interfaces.
	(gfc_match_interface): Treat DTIO interfaces in the same way as
	(gfc_current_interface_head): Add INTERFACE_DTIO appropriately.
	(check_dtio_arg_TKR_intent): New function.
	(check_dtio_interface1): New function.
	(gfc_check_dtio_interfaces): New function.
	(gfc_find_specific_dtio_proc): New function.
	* io.c : Add FMT_DT to format_token.
	(format_lex): Handle DTIO formatting.
	* match.c (gfc_op2string): Add DTIO operators.
	* resolve.c (derived_inaccessible): Ignore pointer components
	to enclosing derived type.
	(resolve_transfer): Resolve transfers that involve DTIO.
	procedures. Find the specific subroutine for the transfer and
	use its existence to over-ride some of the constraints on
	derived types. If the transfer is recursive, require that the
	subroutine be so qualified.
	(dtio_procs_present): New function.
	(resolve_fl_namelist): Remove inhibition of polymorphic objects
	in namelists if DTIO read and write subroutines exist. Likewise
	for derived types.
	(resolve_types): Invoke 'gfc_verify_dtio_procedures'.
	* symbol.c : Set 'dtio_procs' using 'minit'.
	* trans-decl.c (gfc_finish_var_decl): If a derived-type/class
	object is associated with DTIO procedures, make it TREE_STATIC.
	* trans-expr.c (gfc_get_vptr_from_expr): If the expression
	drills down to a PARM_DECL, extract the vptr correctly.
	(gfc_conv_derived_to_class): Check 'info' in the test for
	'useflags'. If the se expression exists and is a pointer, use
	it as the class _data.
	* trans-io.c : Add IOCALL_X_DERIVED to iocall and the function
	prototype. Likewise for IOCALL_SET_NML_DTIO_VAL.
	(set_parameter_tree): Renamed from 'set_parameter_const', now
	returns void and has new tree argument. Calls modified to match
	new interface.
	(transfer_namelist_element): Transfer DTIO procedure pointer
	and vpointer using the new function IOCALL_SET_NML_DTIO_VAL.
	(get_dtio_proc): New function.
	(transfer_expr): Add new argument for the vptr field of class
	objects. Add the code to call the specific DTIO proc, convert
	derived types to class and call IOCALL_X_DERIVED.
	(trans_transfer): Add BT_CLASS to structures for treatment by
	the scalarizer. Obtain the vptr for the dynamic type, both for
	scalar and array transfer.

2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	Paul Thomas  <pault@gcc.gnu.org>

	PR libgfortran/48298
	* gfortran.map : Flag _st_set_nml_dtio_var and
	_gfortran_transfer_derived.
	* io/format.c (format_lex): Detect DTIO formatting.
	(parse_format_list): Parse the DTIO format.
	(next_format): Include FMT_DT.
	* io/format.h : Likewise. Add structure 'udf' to structure
	'fnode' to carry the IOTYPE string and the 'vlist'.
	* io/io.h : Add prototypes for the two types of DTIO subroutine
	and a typedef for gfc_class. Also, add to 'namelist_type'
	fields for the pointer to the DTIO procedure and the vtable.
	Add fields to struct st_parameter_dt for pointers to the two
	types of DTIO subroutine. Add to gfc_unit DTIO specific fields.
	(internal_proto): Add prototype for 'read_user_defined' and
	'write_user_defined'.
	* io/list_read.c (check_buffers): Use the 'current_unit' field.
	(unget_char): Likewise.
	(eat_spaces): Likewise.
	(list_formatted_read_scalar): For case BT_CLASS, call the DTIO
	procedure.
	(nml_get_obj_data): Likewise when DTIO procedure is present,.
	* io/transfer.c : Export prototypes for 'transfer_derived' and
	'transfer_derived_write'.
	(unformatted_read): For case BT_CLASS, call the DTIO procedure.
	(unformatted_write): Likewise.
	(formatted_transfer_scalar_read): Likewise.
	(formatted_transfer_scalar_write: Likewise.
	(transfer_derived): New function.
	(data_transfer_init): Set last_char if no child_dtio.
	(finalize_transfer): Return if child_dtio set.
	(st_write_done): Add condition for child_dtio not set.
	Add extra arguments for st_set_nml_var prototype.
	(set_nml_var): New function that contains the contents of the
	old version of st_set_nml_var. Also sets the 'dtio_sub' and
	'vtable' fields of the 'nml' structure.
	(st_set_nml_var): Now just calls set_nml_var with 'dtio_sub'
	and 'vtable' NULL.
	(st_set_nml_dtio_var): New function that calls set_nml_var.
	* io/unit.c (get_external_unit): If the found unit child_dtio
	is non zero, don't do any mutex locking/unlocking.  Just
	return the unit.
	* io/unix.c (tempfile_open): Revert to C style comment.
	* io/write.c (list_formatted_write_scalar): Do the DTIO call.
	(nml_write_obj): Add BT_CLASS and do the DTIO call.

2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/48298
	* gfortran.dg/dtio_1.f90: New test.
	* gfortran.dg/dtio_2.f90: New test.
	* gfortran.dg/dtio_3.f90: New test.
	* gfortran.dg/dtio_4.f90: New test.
	* gfortran.dg/dtio_5.f90: New test.
	* gfortran.dg/dtio_6.f90: New test.
	* gfortran.dg/dtio_7.f90: New test.
	* gfortran.dg/dtio_8.f90: New test.
	* gfortran.dg/dtio_9.f90: New test.
	* gfortran.dg/dtio_10.f90: New test.

From-SVN: r239880
2016-08-31 05:36:22 +00:00
Nathan Sidwell d3ca2257cc configure.ac (nvptx-*): Hardwire newlib.
* configure.ac (nvptx-*): Hardwire newlib.
	* configure: Rebuilt.

From-SVN: r239836
2016-08-29 19:09:57 +00:00
Janne Blomqvist 09309e09ec Use a XOR cipher instead of byte shuffling to protect against bad seeds.
libgfortran:
2016-08-19  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics/random.c (xor_keys): New array with "secret" keys.
        (scramble_seed): XOR given seed with xor_keys array rather than
        shuffling bytes.
        (unscramble_seed): Remove function.
        (random_seed_i4): Use new scramble_seed.
        (random_seed_i8): Likewise.

frontend:
2016-08-19  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics.texi (RANDOM_NUMBER): Remove reference to
        init_random_seed in example.
        (RANDOM_SEED): Remove warning to not set all seed values to 0.

From-SVN: r239613
2016-08-19 17:19:51 +03:00
Janne Blomqvist 91151a7334 Always initialize PRNG using random data from the OS.
libgfortran:

2016-08-16  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics/random.c (master_init): New variable.
        (init_rand_state): Move below getosrandom (), maybe initialize
        master_state.
        (random_seed_i4): If called with no arguments, set master_init to
        false, and reinitialize. If called with PUT=, set master_init to
        true.
        (random_seed_i8): Likewise.

testsuite:

2016-08-16  Janne Blomqvist  <jb@gcc.gnu.org>

        * gfortran.dg/random_4.f90: Initialize seed before using, handle
        the last special seed value.
        * gfortran.dg/random_7.f90: Use size for last array member instead
        of hardcoded value.

From-SVN: r239611
2016-08-19 17:12:32 +03:00
Rainer Orth e8283787cb Include <stdlib.h> in intrinsics/random.c
* intrinsics/random.c: Include <stdlib.h>.

From-SVN: r239375
2016-08-11 15:26:07 +00:00
Janne Blomqvist b152f5a2b3 Replace KISS PRNG with xorshift1024* using per-thread state.
frontend:

2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

	* check.c (gfc_check_random_seed): Use new seed size in check.
	* intrinsic.texi (RANDOM_NUMBER): Updated documentation.
	(RANDOM_SEED): Likewise.


testsuite:

2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.dg/random_7.f90: Take into account that the last seed
	value is the special p value.
	* gfortran.dg/random_seed_1.f90: Seed size is now constant.


libgfortran:
2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/random.c: Replace KISS with xorshift1024* using
	per-thread state.
	* runtime/main.c (init): Don't call random_seed_i4.

From-SVN: r239356
2016-08-11 11:58:55 +03:00
Andre Vehreschild 9fe9a3a780 libcaf.h: Add parameter stat to caf_get() and caf_send()'s function prototypes.
libgfortran/ChangeLog:

2016-07-22  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/libcaf.h: Add parameter stat to caf_get() and
	caf_send()'s function prototypes.
	* caf/single.c (_gfortran_caf_get): Implement reporting
	error using stat instead of abort().
	(_gfortran_caf_send): Same.
	(_gfortran_caf_sendget): Use NULL for stat when calling
	caf_send().


gcc/testsuite/ChangeLog:

2016-07-22  Andre Vehreschild  <vehre@gcc.gnu.org>

	* gfortran.dg/coarray_stat_2.f90: New test.

From-SVN: r238636
2016-07-22 11:58:50 +02:00
Jerry DeLisle 5b0e27a724 re PR libfortran/48852 (Invalid spaces in list-directed output of complex constants)
2016-06-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/48852
	* io/write.c: Cleaned up whitespace.
	(write_d, write_e, write_f, write_es, write_en): Use new helper function
	write_float_0. (write_float_0): New helper function.
	(get_precision, select_buffer, select_string, write_float_string): New
	helper functions used in remaining float writing functions. Helper function
	write_float_string now contains code for writing to kind=4 character
	internal units.
	(write_real): Modified to establish working buffers at this level and to
	use new helper functions.
	(write_real_g0): Likewise modified.
	(write_complex): Likewise modified. Gets both float strings before
	output so that final lengths can be determined which allows right
	justifying the complex number with no intervening spaces.
	* io/write_float.def (build_float_string): Renamed from previosly
	output_float, modified to use buffers passed in from higher functions,
	builds a null terminated string of the floating point value. Character
	kind=4 code eliminated.
	(write_infnan): Likewise modified to use incoming buffers and eliminate
	kind=4 related code.
	(OUTPUT_FLOAT_FMT_G): Deleted, functionality moved into FORMAT_FLOAT.
	(FORMAT_FLOAT): Renamed macro from WRITE_FLOAT. Use build_float_string.
	(get_float_string): Renamed from write_float, uses FORMAT_FLOAT macro.
	Buffer allocation removed, now at higher level.

	PR libgfortran/48852
	* gfortran.dg/char4_iunit_1.f03: Update test.
	* gfortran.dg/f2003_io_5.f03: Update test.
	* gfortran.dg/real_const_3.f90: Update test.

From-SVN: r237735
2016-06-23 15:58:05 +00:00
Jerry DeLisle 64fc0cd9b2 re PR libfortran/71123 (Namelist read failure on Windows)
2016-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/71123
	* io/list_read (eat_spaces): Eat '\r' as part of spaces.
        fix change log

From-SVN: r236629
2016-05-24 06:16:00 +00:00
Jerry DeLisle e3f365343f re PR libfortran/70684 (incorrect reading of values from file on Windows)
2016-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/70684
	* io/list_read (eat_spaces): Eat '\r' as part of spaces.

	* gfortran.dg/namelist_90.f: New test

From-SVN: r236628
2016-05-24 06:11:21 +00:00
Jerry DeLisle 90eeab20f7 re PR libfortran/70684 (incorrect reading of values from file on Windows)
2016-04-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/70684
	* io/list_read (check_buffers): Add '\r' to check for end of line.
	factor.

	* gfortran.dg/list_read_14.f90: New test.

From-SVN: r235220
2016-04-19 19:24:28 +00:00
Dominique d'Humieres e0876e21cf [multiple changes]
2016-03-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR libgfortran/70235
	* io/write_float.def: Fix PF format for negative values of the scale
	factor.

2016-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
	    Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* gfortran.dg/fmt_pf.f90: New test.

From-SVN: r234600
2016-03-30 22:47:45 +02:00
Alessandro Fanfarillo 0daa7ed944 STOP managed by external library when coarrays are used
From-SVN: r234502
2016-03-28 03:05:01 -06:00
Jerry DeLisle 64a454d9f7 re PR fortran/69456 (Namelist value with trailing sign is ignored without error)
2016-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69456
	* io/list_read.c (read_real): If digit is missing from exponent issue
	an error. (parse_real): Likewise and adjusted error message to clarify
	it is part of a complex number.
	(nml_read_obj): Bump item count and add comment that this is used to
	identify which item in a namelist read has a problem.

	PR libgfortran/69456
	* gfortran.dg/namelist_89.f90: New test.
	* gfortran.dg/pr59700.f90: Update test..

From-SVN: r233641
2016-02-23 18:38:31 +00:00
Jerry DeLisle efea09f21b re PR libfortran/69651 ([6 Regession] Usage of unitialized pointer io/list_read.c)
2016-02-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69651
	* io/list_read.c (push_char4): Fix the pointer usage for xrealloc.

From-SVN: r233500
2016-02-17 16:48:57 +00:00
Jerry DeLisle fc12098dbe re PR libfortran/69651 ([6 Regession] Usage of unitialized pointer io/list_read.c)
2016-02-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69651
	* io/list_read.c: Entire file trailing spaces removed.
	(CASE_SEPARATORS): Remove '!'.
	(is_separator): Add namelist mode as condition with '!'.
	(push_char): Remove un-needed memset. (push_char4): Likewise and remove
	'new' pointer. (eat_separator): Remove un-needed use of notify_std.
	(read_logical): If '!' bang encountered when not in namelist mode got
	bad_logical to give an error. (read_integer): Likewise reject '!'.
	(read_character): Remove condition testing c = '!' which is now inside
	the is_separator macro. (parse_real): Reject '!' unless in namelist mode.
	(read_complex): Reject '!' unless in namelist mode. (read_real): Likewise
	reject '!'.

	PR libgfortran/69651
	* gfortran.dg/read_bang.f90: New test.
	* gfortran.dg/read_bang4.f90: New test.

From-SVN: r233436
2016-02-15 22:31:13 +00:00
Jerry DeLisle 955ca6dc77 re PR fortran/69668 (Error reading namelist opened with DELIM='NONE')
2016-02-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69668
	* io/list_read.c (read_character): Remove code related to DELIM_NONE.

	PR libgfortran/69668
	* gfortran.dg/namelist_38.f90: Update test.
	* gfortran.dg/namelist_84.f90: Update test.

From-SVN: r233387
2016-02-12 19:52:13 +00:00
John David Anglin c55879c872 re PR libfortran/68744 (FAIL: gfortran.dg/backtrace_1.f90 -O0 execution test)
PR libfortran/68744
	* runtime/backtrace.c: Include gthr.h.
	(show_backtrace): Use __gthread_active_p() to determine whether threads
	are active.  Return if lbstate is NULL.

From-SVN: r232770
2016-01-23 23:32:13 +00:00
Jakub Jelinek f474299175 execute_command_line.c (set_cmdstat): Use "%s", msg instead of msg to avoid -Wformat-security warning.
* intrinsics/execute_command_line.c (set_cmdstat): Use "%s", msg
	instead of msg to avoid -Wformat-security warning.

From-SVN: r232449
2016-01-15 21:20:58 +01:00
Jakub Jelinek 818ab71a41 Update copyright years.
From-SVN: r232055
2016-01-04 15:30:50 +01:00
Jerry DeLisle 820d395cc8 re PR libfortran/68987 (double free or corruption in _gfortran_st_write_done when a write statement to an internal file uses an invalid format and the ERR= specifier appears.)
2015-12-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/68987
	io/format.c (format_error): Remove unneeded memory cleanup.

From-SVN: r231989
2015-12-29 05:17:42 +00:00
Jerry DeLisle 8d3586e4e2 PR libfortran/pr68867
2015-12-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/pr68867
	* io/write.c (set_fnode_default): For kind=16, set the decimal precision
	depending on the platform binary precision, 106 or 113.

From-SVN: r231639
2015-12-15 03:16:26 +00:00
Juoko Orava 9df47e83ee re PR fortran/50201 (gfortran with -static causes seg fault at runtime for writing double prec array with precision increased to kind=16)
2015-12-05  Juoko Orava <jouko.orava@iki.fi>

	PR fortran/50201
	* io/write_float.def: Avoid marking quadmath_snprintf as an untyped
	weak reference, which fixing linking with -static.

From-SVN: r231320
2015-12-05 18:12:26 +00:00
Tobias Burnus 5df445a2a5 check.c (gfc_check_event_query): New function.
2015-12-02  Tobias Burnus  <burnus@net-b.de>
	    Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>

	* check.c (gfc_check_event_query): New function.
	* dump-parse-tree.c (show_code_node): Handle EXEC_EVENT_POST,
	EXEC_EVENT_WAIT.
	* expr.c (gfc_check_vardef_context): New check for event variables
	definition.
	* gfortran.h (gfc_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
	(gfc_isym_id): GFC_ISYM_EVENT_QUERY.
	(struct symbol_attribute): New field.
	(gfc_exec_op): Add EXEC_EVENT_POST and EXEC_EVENT_WAIT.
	* gfortran.texi: Document about new events functions and minor
	changes.
	* interface.c (compare_parameter): New check.
	(gfc_procedure_use): New check for explicit procedure interface.
	(add_subroutines): Add event_query.
	* intrinsic.h (gfc_check_event_query,gfc_resolve_event_query):
	New prototypes.
	* iresolve.c (gfc_resolve_event_query): New function.
	* iso-fortran-env.def (event_type): New type.
	* match.c (event_statement,gfc_match_event_post,gfc_match_event_wait):
	New functions.
	(gfc_match_name): New event post and event wait.
	* match.h (gfc_match_event_post,gfc_match_event_wait):
	New prototypes.
	* module.c (ab_attribute): Add AB_EVENT_COMP.
	(attr_bits): Likewise.
	(mio_symbol_attribute): Handle event_comp attribute.
	* parse.c (decode_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
	(next_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
	(gfc_ascii_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
	(parse_derived): Check for event_type components.
	* resolve.c (resolve_allocate_expr): Check for event variable def.
	(resolve_lock_unlock): Renamed to resolve_lock_unlock_event. It
	includes logic for locks and events.
	(gfc_resolve_code): Call it.
	(gfc_resolve_symbol): New check for event variable to be a corray.
	* st.c (gfc_free_statement): Handle new EXEC_EVENT_POST and
	EXEC_EVENT_WAIT.
	* trans-decl.c (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
	gfor_fndecl_caf_event_query): New global variables.
	(generate_coarray_sym_init): Checking for event_type.
	(gfc_conv_procedure_call): Check for C bind attribute.
	* trans-intrinsic.c (conv_intrinsic_event_query): New function.
	(conv_intrinsic_move_alloc): Call it.
	* trans-stmt.c (gfc_trans_lock_unlock): Passing address
	of actual argument.
	(gfc_trans_sync): Likewise.
	(gfc_trans_event_post_wait): New function.
	* trans-stmt.h (gfc_trans_event_post_wait): New prototype.
	* trans-types.c (gfc_get_derived_type): Integer_kind as event_type.
	* trans.c (gfc_allocate_using_lib): New argument and logic for events.
	(gfc_allocate_allocatable): Passing new argument.
	(trans_code): Handle EXEC_EVENT_POST, EXEC_EVENT_WAIT.
	* trans.h (gfc_coarray_type): New elements.
	(gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
	gfor_fndecl_caf_event_query): Declare them.

2015-12-02  Tobias Burnus  <burnus@net-b.de>
	    Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>

	* gfortran.dg/coarray/event_1.f90: New.
	* gfortran.dg/coarray/event_2.f90: New.

Co-Authored-By: Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>

From-SVN: r231208
2015-12-02 21:59:05 +00:00
Jerry DeLisle 6e9966e830 re PR fortran/52251 (Nonadvancing I/O and the t edit descriptor)
2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/52251
	* io/transfer.c (formatted_transfer_scalar_write): Reset skips count.
	(finalize_transfer): For ADVANCE_NO, emit pending spaces and reset the
	skip count.

2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* gfortran.dg/fmt_t_8.f90: New test.

From-SVN: r230734
2015-11-23 00:40:51 +00:00
Jerry DeLisle ba67259c00 write_float.def (output_float): Move block determining room for leading zero to before checkng g0 formatting.
2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io/write_float.def (output_float): Move block determining
	room for leading zero to before checkng g0 formatting.

From-SVN: r230728
2015-11-22 22:14:46 +00:00
Francois-Xavier Coudert 76b88c5fc9 re PR libfortran/67527 (io.h sanitizer complains on 1 << 31)
PR libfortran/67527
	PR libfortran/67535
	PR libfortran/67536
	* io/io.h: Use unsigned values for 31-bit left shifts.
	* io/unix.c (buf_read): Do not call memcpy() with NULL pointer arg.
	* io/write.c (nml_write_obj): Likewise.

From-SVN: r227705
2015-09-12 12:05:44 +00:00
Janne Blomqvist 71cda9cac8 PR 53379 Print backtrace on error termination.
2015-09-05  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/53379
	* libgfortran.h (exit_error): New prototype.
	* runtime/error.c (exit_error): New function.
	(os_error): Call exit_error instead of exit.
	(runtime_error): Likewise.
	(runtime_error_at): Likewise.
	(internal_error): Likewise.
	(generate_error): Likewise.
	(notify_std): Likewise.
	* runtime/stop.c (error_stop_string): Likewise.
	(error_stop_numeric): Likewise.

From-SVN: r227503
2015-09-05 01:17:11 +03:00
Janne Blomqvist 43ff5c7a2d libgfortran: Use remove(3) instead of unlink(2) when deleting files.
testsuite:

2015-09-04  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.dg/read_dir.f90: Delete empty directory when closing
	rather than calling rmdir, cleanup if open fails.


libgfortran:

2015-09-04  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/unix.h (delete_file): Remove prototype.
	* io/unix.c (delete_file): Remove function.
	* io/close.c (st_close): Replace delete_file and unlink with
	remove.
	* io/open.c (already_open): Replace unlink with remove.

From-SVN: r227472
2015-09-04 00:18:56 +03:00
Janne Blomqvist 1b0b9fcb92 PR 67414 Better diagnostics on backtrace failure, gf_strerror bugfix
2015-09-02  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/67414
	* io/write.c (gfc_itoa): Move to runtime/string.c.
	* libgfortran.h (show_backtrace): Make arg bool.
	(gfc_itoa): New prototype.
	* runtime/backtrace.c (struct mystate): Change type of try_simple
	field, add in_signal_handler field.
	(error_callback): Print out error number, or if not in a signal
	handler, the error message.
	(show_backtrace): Change type of arg, change initialization of
	struct mystate.
	(backtrace): Call show_backtrace with correct arg type.
	* runtime/compile_options.c (backtrace_handler): Call with correct
	arg type.
	* runtime/error.c (sys_abort): Likewise.
	(gf_strerror): Handle newlocale() failure.
	* runtime/string.c (gfc_itoa): Function moved here from
	io/write.c.

From-SVN: r227404
2015-09-02 17:51:40 +03:00
Francois-Xavier Coudert 6a822a7403 re PR fortran/47571 (undefined reference to clock_gettime in Linux build of 02/01/2011)
PR libfortran/47571
	* acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Reinstate.
	* configure.ac: Call LIBGFOR_GTHREAD_WEAK again.
	* config.h.in: Regenerate.
	* configure: Regenerate.

From-SVN: r227347
2015-08-31 14:02:43 +00:00
Francois-Xavier Coudert e78549932d re PR fortran/47571 (undefined reference to clock_gettime in Linux build of 02/01/2011)
PR libfortran/47571
	* acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Remove.
	(LIBGFOR_CHECK_WEAKREF): New test.
	* configure.ac: Call LIBGFOR_CHECK_WEAKREF instead of
	LIBGFOR_GTHREAD_WEAK.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* intrinsics/system_clock.c: Use SUPPORTS_WEAKREF instead of
	SUPPORTS_WEAK and GTHREAD_USE_WEAK.

From-SVN: r227335
2015-08-31 10:37:30 +00:00
Jerry DeLisle 7c32549e57 re PR fortran/67367 (Program crashes on READ(IOSTAT=IOS, ...) on directory OPEN()ed without error)
2015-08-29 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/67367
	* io/unix.c (buf_read): Check for error condition and if found
	return the error code.

From-SVN: r227320
2015-08-29 15:38:39 +00:00
Francois-Xavier Coudert 4879fba998 acinclude.m4: Remove LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT.
* acinclude.m4: Remove LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT.
	* configure.ac: Remove checks for strcasestr, execl, close,
	getrlimit, readlink, getppid, powl, erfl, j0l, j1l, y0l, y1l,
	tgammal, and lgammal.
	* config.h.in: Regenerate.
	* configure: Regenerate.

From-SVN: r227319
2015-08-29 13:17:05 +00:00
Francois-Xavier Coudert 34ae233a54 * io/unix.c (min): Remove unused macro.
From-SVN: r227317
2015-08-29 13:01:54 +00:00
Francois-Xavier Coudert 8b40ca6a38 re PR fortran/53668 (Cray-pointer diagnostic enhancement)
PR fortran/53668

	* intrinsic.c (add_functions, add_subroutines): Remove resolution
	functions for FREE and MALLOC.
	* intrinsic.h (gfc_resolve_malloc, gfc_resolve_free): Remove.
	* iresolve.c (gfc_resolve_malloc, gfc_resolve_free): Remove.
	* trans-intrinsic.c (conv_intrinsic_free,
	gfc_conv_intrinsic_malloc): New functions.

	* intrinsics/malloc.c: Adapt comments.

From-SVN: r227311
2015-08-28 20:46:43 +00:00
James Greenhalgh bd459d0b1d [Patch] Add to the libgfortran/newlib bodge to "detect" ftruncate support in ARM/AArch64/SH
* configure.ac: Auto-detect newlib function support unless we
	know there are issues when configuring for a host.
	* configure: Regenerate.

From-SVN: r227301
2015-08-28 14:57:57 +00:00
Francois-Xavier Coudert ed019753cb re PR fortran/29600 ([F03] MINLOC and MAXLOC take an optional KIND argument)
PR fortran/29600

	* Makefile.am: Add generated/shape_i{1,2}.c
	* Makefile.in: Regenerate.
	* generated/shape_i1.c: New generated file.
	* generated/shape_i2.c: New generated file.
	* generated/shape_i4.c: Regenerate.
	* generated/shape_i8.c: Regenerate.
	* generated/shape_i16.c: Regenerate.
	* gfortran.map (GFORTRAN_1.7): Add _gfortran_shape_{1,2}.
	* m4/shape.m4: Fix parameter type.

	* gfortran.dg/shape_8.f90: New test.

From-SVN: r227210
2015-08-26 12:37:42 +00:00
Francois-Xavier Coudert 485adf79b5 libgfortran.h (show_variables): Remove prototype.
* libgfortran.h (show_variables): Remove prototype.
	* runtime/environ.c (print_spaces, var_source, show_integer,
	show_boolean, show_sep, show_string): Remove functions.
	* runtime/main.c (init): Remove dead code.

From-SVN: r227208
2015-08-26 06:34:05 +00:00
Francois-Xavier Coudert 693ac2ab35 unit.c (get_internal_unit): Make default sign mode unspecified.
* io/unit.c (get_internal_unit): Make default sign mode unspecified.
	(init_units): Make default sign mode unspecified.

From-SVN: r227178
2015-08-25 16:27:43 +00:00
Francois-Xavier Coudert a139f28147 * libgfortran.h (check_buffered): Remove unused prototype.
From-SVN: r227174
2015-08-25 15:26:02 +00:00
Francois-Xavier Coudert 5cdf54b765 re PR libfortran/57496 (I/O: WRITE(*,*) HUGE(0._10) gives SIGFPE with -ffpe-trap=overflow)
PR libfortran/57496
	* io/write_float.def: Use built-in type-generic functions defined
	by libgfortran.h for isfinite, isnan, and signbit.

From-SVN: r227136
2015-08-24 16:31:47 +00:00
Francois-Xavier Coudert ad4f95e395 re PR libfortran/54572 (Use libbacktrace library)
PR libfortran/54572

	* Makefile.def: Make libgfortran depend on libbacktrace.
	* Makefile.in: Regenerate.

	* config-lang.in: Add libbacktrace to target_libs.

	* Makefile.am (libgfortran_la_LDFLAGS): Link in libbacktrace.
	(AM_CPPFLAGS): Add libbacktrace directories to include paths.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove checks for strtok_r, wait, execve, pipe,
	and dup2. Remove call to GCC_CHECK_UNWIND_GETIPINFO.
	* libgfortran.h (full_exe_path, find_addr2line, backtrace): Remove
	prototypes.
	(show_backtrace): Add prototype.
	* runtime/backtrace.c: Rework file entirely.
	* runtime/compile_options.c (backtrace_handler): Rename backtrace
	to show_backtrace.
	(maybe_find_addr2line): Remove function.
	(set_options): Remove call to maybe_find_addr2line.
	* runtime/error.c (sys_abort): Rename backtrace to show_backtrace.
	* runtime/main.c (store_exe_path): Empty function body.
	(full_exe_path, gfstrtok_r, find_addr2line): Remove functions.
	(cleanup): Don't free removed variables.
	* runtime/minimal.c (full_exe_path): Remove function.
	(set_args): Don't set exe_path.

	* gfortran.dg/backtrace_1.f90: New test.

From-SVN: r227106
2015-08-23 21:50:30 +00:00
François-Xavier Coudert 1487cca00c re PR libfortran/62296 (EXECUTE_COMMAND_LINE not F2008 conforming)
PR libfortran/62296

	* intrinsics/execute_command_line.c (EXEC_INVALIDCOMMAND): New
	error code.
	(cmdmsg_values): New error message.
	(set_cmdstat): Rework runtime error.
	(execute_command_line): Handle invalid command line error status.

	* gfortran.dg/execute_command_line_2.f90: New test.

From-SVN: r227105
2015-08-23 21:24:49 +00:00
Steven G. Kargl 50060d9a03 re PR libfortran/67140 (undefined reference to _gfortran_mvbits_i16)
2015-08-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR libfortran/67140
	* intrinsics/mvbits.c: Fix build for paltforms without c_int128_t.

From-SVN: r226769
2015-08-10 21:45:01 +00:00
Steven G. Kargl 0238e1e98a [multiple changes]
2015-08-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR libfortran/67140
	* gfortran.map: Add _gfortran_mvbits_i16.
	* intrinsics/mvbits.c: Generate mvbits for c_int128_t.

2015-08-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR libfortran/67140
	* gfortran.dg/pr67140.f90: New test.

From-SVN: r226764
2015-08-10 17:42:00 +00:00
Francois-Xavier Coudert 18a2180daa re PR libfortran/66936 (io/unix.c gratuitously uses S_IRWXG and S_IRWXO on the basis that umask() is available)
PR libfortran/66936
	* io/unix.c (__MINGW32__): Undefine HAVE_UMASK.

From-SVN: r226750
2015-08-09 16:43:42 +00:00
Francois-Xavier Coudert c2cc83bc88 re PR libfortran/66458 (Loading libgfortran.so changes the FPU exception flags)
PR libfortran/66458
	* runtime/main.c (init): Only call set_fpu() if requested by user.

From-SVN: r226725
2015-08-07 16:23:53 +00:00
Francois-Xavier Coudert 00ebbcbc59 * runtime/compile_options.c (set_options): Fix typos.
From-SVN: r226686
2015-08-06 17:42:19 +00:00
Uros Bizjak f8bdb6a56b * config/fpu-387.h: Remove unwanted whitespace.
From-SVN: r226550
2015-08-04 11:24:15 +02:00
Uros Bizjak 9f8aa64ac1 fpu-387.h (get_fpu_trap_exceptions): Add temporary variable to improve generated code.
* config/fpu-387.h (get_fpu_trap_exceptions): Add temporary variable
	to improve generated code.

From-SVN: r226549
2015-08-04 11:16:52 +02:00
Francois-Xavier Coudert 22a499884f re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables)
PR fortran/64022

	* simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
	support to all real kinds.

	* ieee/ieee_exceptions.F90: Support all real kinds.
	* ieee/ieee_arithmetic.F90: Likewise.
	* ieee/ieee_helper.c (ieee_class_helper_10,
	ieee_class_helper_16): New functions
	* gfortran.map (GFORTRAN_1.7): Add entries.

	* gfortran.dg/ieee/ieee_7.f90: Adjust test.
	* gfortran.dg/ieee/large_1.f90: New test.

From-SVN: r226548
2015-08-04 07:27:19 +00:00
Uros Bizjak c276d6055e re PR libfortran/66650 (libgfortran: warning: left shift of negative value [-Wshift-negative-value])
PR libgfortran/66650
	* libgfortran.h (GFC_DTYPE_SIZE_MASK): Rewrite to avoid
	"left shift of negative value" warning.

From-SVN: r226355
2015-07-29 17:42:03 +02:00
Janne Blomqvist 5fd6ec3e4b PR 66861 Fix null pointer crash on mingw.
2015-07-14  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/66861
	* io/unix.c (compare_file_filename): Verify that u->filename is
	non-NULL before strcmp.
	(find_file0): Likewise.

From-SVN: r225788
2015-07-14 23:26:06 +03:00