aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
AgeCommit message (Collapse)AuthorFilesLines
2009-06-30re PR fortran/40576 (Endless loop in internal write)Jerry DeLisle2-1/+6
2009-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/40576 * io/transfer.c (sset): Adjust exit condition for loop. From-SVN: r149075
2009-06-23Delete bad entry.Jerry DeLisle1-7/+1
From-SVN: r148826
2009-06-23re PR fortran/40508 (memory leak in internal write of gfortran)Jerry DeLisle2-1/+15
2009-06-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/40508 * io/format.c: Don't save parsed format data for internal units. From-SVN: r148823
2009-06-21re PR fortran/37577 ([meta-bug] change internal array descriptor format for ↵Thomas Koenig336-9583/+9238
better syntax, C interop TR, rank 15) 2009-06-21 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/37577 Port from fortran-dev * runtime/in_pack_generic (internal_pack): Remove unnecessary test for stride == 0. * runtime/in_unpack_generic.c (internal_unpack): Likewise. * intrinsics/iso_c_binding.c (c_f_pointer_u0): Take care of stride in "shape" argument. Use array access macros for accessing array descriptors. * libgfortran.h (struct descriptor_dimension): Change stride to _stride, lbound to _lbound and ubound to _ubound. (GFC_DIMENSION_LBOUND): Use new name(s) in struct descriptor_dimension. (GFC_DIMENSION_UBOUND): Likewise. (GFC_DIMENSION_STRIDE): Likewise. (GFC_DIMENSION_EXTENT): Likewise. (GFC_DIMENSION_SET): Likewise. (GFC_DESCRIPTOR_LBOUND): Likewise. (GFC_DESCRIPTOR_UBOUND): Likewise. (GFC_DESCRIPTOR_EXTENT): Likewise. (GFC_DESCRIPTOR_STRIDE): Likewise. * io/transfer.c (transfer_array): Use array access macros. Use byte-sized strides. * intrinsics/eoshift0.c (eoshift0): Use array access macros everywhere. * m4/in_pack.m4 (internal_pack_'rtype_ccode`): Use array access macros for accessing array descriptors. * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`): Likewise. * m4/matmull.m4 (matmul_'rtype_code`): Likewise. * m4/matmul.m4 (matmul_'rtype_code`): Likewise. * m4/unpack.m4 (unpack0_'rtype_code`): Likewise. (unpack1_'rtype_code`): Likewise. * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Likewise. * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Use array access macros everywhere. * intrinsics/dtime.c (dtime_sub): Use array access macros for accessing array descriptors. * intrinsics/cshift0 (cshift0): Likewise. * intrinsics/etime.c: Likewise. Remove redundant calculation of rdim. * m4/cshift0.m4 (cshift0_'rtype_code`): Use array access macros for accessing array descriptors. * m4/pack.m4 (pack_'rtype_code`): Likewise. * m4/spread.m4 (spread_'rtype_code`): Likewise. (spread_scalar_'rtype_code`): Likewise. * m4/transpose.m4 (transpose_'rtype_code`): Likewise. * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Likewise. * m4/eoshift1.m4 (eoshift1): Likewise. Remove size argument, calculate within function. (eoshift1_'atype_kind`): Remove size argument from call to eoshift1. (eoshift1_'atype_kind`_char): Likewise. (eoshift1_'atype_kind`_char4): Likewise. * m4/eoshift3.m4 (eoshift3): Remove size argument, calculate within function. Use array access macros for accessing array descriptors. (eoshift3_'atype_kind`): Remove size argument from call to eoshift1. (eoshift3_'atype_kind`_char): Likewise. (eoshift3_'atype_kind`_char4): Likewise. * m4/shape.m4 (shape_'rtype_kind`): Use array access macros for accessing array descriptors. * m4/cshift1.m4 (cshift1): Remove size argument, calculate within function. Use array access macros for accessing array descriptors. (cshift1_'atype_kind`): Remove size argument from call to cshift1. (cshift1_'atype_kind`_char): Remove size argument from call to cshift1. (cshift1_'atype_kind`_char4): Remove size argument from call to cshift1. * m4/reshape.m4 (reshape_'rtype_ccode`): Use array access macros for accessing array descriptors. * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Likewise. * intrinsics/pack_generic.c (pack_internal): Use array access macros for accessing array descriptors. (pack_s_internal): Likewise. * intrinsics/transpose_generic.c (transpose_internal): Remove size argument, calculate from array descriptor. Use array access macros for accessing array descriptors. (transpose): Remove size argument from call. (transpoe_char): Likewise. (transpose_char4): Likewise. * intrinsics/move_alloc.c (move_alloc): Use array access macros for accessing array descriptors. * intrinsics/spread_generic.c (spread_internal): Remove size argument, calculate from array descriptor. Use array access macros for accessing array descriptors. (spread_internal_scalar): Likewise. (spread): Remove size argument from call to spread_internal. (spread_char): Mark argument source_length as unused. Remove size argument from call to spread_internal. (spread_char4): Likewise. (spread_char_scalar): Likewise. (spread_char4_scalar): Likewise. * intrinsics/unpack_generic.c (unpack_internal): Use array access macros for accessing array descriptors. * intrinsics/eoshift2.c (eoshift2): Remove size argument, calculate from array descriptor instead. Use array access macros for accessing array descriptors. (eoshift2_##N): Remove size argument from call to eoshift2. (eoshift2_##N_##char): Likewise. (eoshift2_##N_##char4): Likewise. * intrinsics/reshape_generic.c (reshape_internal): Use array access macross for accessing array descriptors. * libgfortran.h: Introduce new macros GFC_DIMENSION_LBOUND, GFC_DIMENSION_UBOUND,GFC_DIMENSION_STRIDE, GFC_DIMENSION_EXTENT, GFC_DIMENSION_SET, GFC_DESCRIPTOR_LBOUND, GFC_DESCRIPTOR_UBOUND, GFC_DESCRIPTOR_EXTENT, GFC_DESCRIPTOR_EXTENT_BYTES, GFC_DESCRIPTOR_STRIDE, GFC_DESCRIPTOR_STRIDE_BYTES * runtime/in_pack_generic.c (internal_pack): Use new macros for array descriptor access. * runtime/in_unpack_generic.c (internal_unpack): Likewise. * intrinsics/dtime.c (dtime_sub): Likewise. * intrinsics/cshift0 (cshift0): Remove argument size, calculate directly from the array descriptor. Use new macros for array descriptor access. * cshift0_##N: Remove shift argument in call to cshift0. * cshift0_##N_char: Mark array_length as unused. Remove array_length in call to cshift0. * cshift0_##N_char4: Likewise. * intrisics/etime.c: Use new macros for array descriptor access. * intrinsics/stat.c (stat_i4_sub_0): Likewise. (stat_i8_sub_0): Likewise. (fstat_i4_sub): Likewise. (fstat_i8_sub): Likewise. * intrinsics/date_and_time.c (date_and_time): Likewise. (secnds): Likewise. (itime_i4): Likewise. (itime_i8): Likewise. (idate_i4): Likewise. (idate_i8): Likewise. (gmtime_i4): Likewise. (gmtime_i8): Likewise. (ltime_i4): Likewise. (litme_i8): Likewise. * intrinsics/associated.c (associated): Likewise. * intrinsics/eoshift0.c (eoshift0): Likewise. * intriniscs/size.c (size0): Likewise. * intrinsics/random.c (arandom_r4): Likewise. (arandom_r8): Likewise. (arandom_r10): Likewise. (arandom_r16): Likewise. (random_seed_i4): Likewise. (random_seed_i8): Likewise. * io/list_read.c (nml_parse_qualifier): Likewise. (nml_touch_nodes): Likewise. (nml_read_obj): Likewise. (get_name): Likewise. * io/transfer.c (transfer_array): Likewise. (init_loop_spec): Likewise. (st_set_nml_var_dim): Likewise. * io/write.c (nml_write_obj): Likewise. (obj_loop): Likewise. * generated/all_l1.c: Regenerated. * generated/all_l16.c: Regenerated. * generated/all_l2.c: Regenerated. * generated/all_l4.c: Regenerated. * generated/all_l8.c: Regenerated. * generated/any_l1.c: Regenerated. * generated/any_l16.c: Regenerated. * generated/any_l2.c: Regenerated. * generated/any_l4.c: Regenerated. * generated/any_l8.c: Regenerated. * generated/count_16_l.c: Regenerated. * generated/count_1_l.c: Regenerated. * generated/count_2_l.c: Regenerated. * generated/count_4_l.c: Regenerated. * generated/count_8_l.c: Regenerated. * generated/cshift0_c10.c: Regenerated. * generated/cshift0_c16.c: Regenerated. * generated/cshift0_c4.c: Regenerated. * generated/cshift0_c8.c: Regenerated. * generated/cshift0_i1.c: Regenerated. * generated/cshift0_i16.c: Regenerated. * generated/cshift0_i2.c: Regenerated. * generated/cshift0_i4.c: Regenerated. * generated/cshift0_i8.c: Regenerated. * generated/cshift0_r10.c: Regenerated. * generated/cshift0_r16.c: Regenerated. * generated/cshift0_r4.c: Regenerated. * generated/cshift0_r8.c: Regenerated. * generated/cshift1_16.c: Regenerated. * generated/cshift1_4.c: Regenerated. * generated/cshift1_8.c: Regenerated. * generated/eoshift1_16.c: Regenerated. * generated/eoshift1_4.c: Regenerated. * generated/eoshift1_8.c: Regenerated. * generated/eoshift3_16.c: Regenerated. * generated/eoshift3_4.c: Regenerated. * generated/eoshift3_8.c: Regenerated. * generated/in_pack_c10.c: Regenerated. * generated/in_pack_c16.c: Regenerated. * generated/in_pack_c4.c: Regenerated. * generated/in_pack_c8.c: Regenerated. * generated/in_pack_i1.c: Regenerated. * generated/in_pack_i16.c: Regenerated. * generated/in_pack_i2.c: Regenerated. * generated/in_pack_i4.c: Regenerated. * generated/in_pack_i8.c: Regenerated. * generated/in_pack_r10.c: Regenerated. * generated/in_pack_r16.c: Regenerated. * generated/in_pack_r4.c: Regenerated. * generated/in_pack_r8.c: Regenerated. * generated/in_unpack_c10.c: Regenerated. * generated/in_unpack_c16.c: Regenerated. * generated/in_unpack_c4.c: Regenerated. * generated/in_unpack_c8.c: Regenerated. * generated/in_unpack_i1.c: Regenerated. * generated/in_unpack_i16.c: Regenerated. * generated/in_unpack_i2.c: Regenerated. * generated/in_unpack_i4.c: Regenerated. * generated/in_unpack_i8.c: Regenerated. * generated/in_unpack_r10.c: Regenerated. * generated/in_unpack_r16.c: Regenerated. * generated/in_unpack_r4.c: Regenerated. * generated/in_unpack_r8.c: Regenerated. * 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_l16.c: Regenerated. * generated/matmul_l4.c: Regenerated. * generated/matmul_l8.c: Regenerated. * generated/matmul_r10.c: Regenerated. * generated/matmul_r16.c: Regenerated. * generated/matmul_r4.c: Regenerated. * generated/matmul_r8.c: Regenerated. * generated/maxloc0_16_i1.c: Regenerated. * generated/maxloc0_16_i16.c: Regenerated. * generated/maxloc0_16_i2.c: Regenerated. * generated/maxloc0_16_i4.c: Regenerated. * generated/maxloc0_16_i8.c: Regenerated. * generated/maxloc0_16_r10.c: Regenerated. * generated/maxloc0_16_r16.c: Regenerated. * generated/maxloc0_16_r4.c: Regenerated. * generated/maxloc0_16_r8.c: Regenerated. * generated/maxloc0_4_i1.c: Regenerated. * generated/maxloc0_4_i16.c: Regenerated. * generated/maxloc0_4_i2.c: Regenerated. * generated/maxloc0_4_i4.c: Regenerated. * generated/maxloc0_4_i8.c: Regenerated. * generated/maxloc0_4_r10.c: Regenerated. * generated/maxloc0_4_r16.c: Regenerated. * generated/maxloc0_4_r4.c: Regenerated. * generated/maxloc0_4_r8.c: Regenerated. * generated/maxloc0_8_i1.c: Regenerated. * generated/maxloc0_8_i16.c: Regenerated. * generated/maxloc0_8_i2.c: Regenerated. * generated/maxloc0_8_i4.c: Regenerated. * generated/maxloc0_8_i8.c: Regenerated. * generated/maxloc0_8_r10.c: Regenerated. * generated/maxloc0_8_r16.c: Regenerated. * generated/maxloc0_8_r4.c: Regenerated. * generated/maxloc0_8_r8.c: Regenerated. * generated/maxloc1_16_i1.c: Regenerated. * generated/maxloc1_16_i16.c: Regenerated. * generated/maxloc1_16_i2.c: Regenerated. * generated/maxloc1_16_i4.c: Regenerated. * generated/maxloc1_16_i8.c: Regenerated. * generated/maxloc1_16_r10.c: Regenerated. * generated/maxloc1_16_r16.c: Regenerated. * generated/maxloc1_16_r4.c: Regenerated. * generated/maxloc1_16_r8.c: Regenerated. * generated/maxloc1_4_i1.c: Regenerated. * generated/maxloc1_4_i16.c: Regenerated. * generated/maxloc1_4_i2.c: Regenerated. * generated/maxloc1_4_i4.c: Regenerated. * generated/maxloc1_4_i8.c: Regenerated. * generated/maxloc1_4_r10.c: Regenerated. * generated/maxloc1_4_r16.c: Regenerated. * generated/maxloc1_4_r4.c: Regenerated. * generated/maxloc1_4_r8.c: Regenerated. * generated/maxloc1_8_i1.c: Regenerated. * generated/maxloc1_8_i16.c: Regenerated. * generated/maxloc1_8_i2.c: Regenerated. * generated/maxloc1_8_i4.c: Regenerated. * generated/maxloc1_8_i8.c: Regenerated. * generated/maxloc1_8_r10.c: Regenerated. * generated/maxloc1_8_r16.c: Regenerated. * generated/maxloc1_8_r4.c: Regenerated. * generated/maxloc1_8_r8.c: Regenerated. * generated/maxval_i1.c: Regenerated. * generated/maxval_i16.c: Regenerated. * generated/maxval_i2.c: Regenerated. * generated/maxval_i4.c: Regenerated. * generated/maxval_i8.c: Regenerated. * generated/maxval_r10.c: Regenerated. * generated/maxval_r16.c: Regenerated. * generated/maxval_r4.c: Regenerated. * generated/maxval_r8.c: Regenerated. * generated/minloc0_16_i1.c: Regenerated. * generated/minloc0_16_i16.c: Regenerated. * generated/minloc0_16_i2.c: Regenerated. * generated/minloc0_16_i4.c: Regenerated. * generated/minloc0_16_i8.c: Regenerated. * generated/minloc0_16_r10.c: Regenerated. * generated/minloc0_16_r16.c: Regenerated. * generated/minloc0_16_r4.c: Regenerated. * generated/minloc0_16_r8.c: Regenerated. * generated/minloc0_4_i1.c: Regenerated. * generated/minloc0_4_i16.c: Regenerated. * generated/minloc0_4_i2.c: Regenerated. * generated/minloc0_4_i4.c: Regenerated. * generated/minloc0_4_i8.c: Regenerated. * generated/minloc0_4_r10.c: Regenerated. * generated/minloc0_4_r16.c: Regenerated. * generated/minloc0_4_r4.c: Regenerated. * generated/minloc0_4_r8.c: Regenerated. * generated/minloc0_8_i1.c: Regenerated. * generated/minloc0_8_i16.c: Regenerated. * generated/minloc0_8_i2.c: Regenerated. * generated/minloc0_8_i4.c: Regenerated. * generated/minloc0_8_i8.c: Regenerated. * generated/minloc0_8_r10.c: Regenerated. * generated/minloc0_8_r16.c: Regenerated. * generated/minloc0_8_r4.c: Regenerated. * generated/minloc0_8_r8.c: Regenerated. * generated/minloc1_16_i1.c: Regenerated. * generated/minloc1_16_i16.c: Regenerated. * generated/minloc1_16_i2.c: Regenerated. * generated/minloc1_16_i4.c: Regenerated. * generated/minloc1_16_i8.c: Regenerated. * generated/minloc1_16_r10.c: Regenerated. * generated/minloc1_16_r16.c: Regenerated. * generated/minloc1_16_r4.c: Regenerated. * generated/minloc1_16_r8.c: Regenerated. * generated/minloc1_4_i1.c: Regenerated. * generated/minloc1_4_i16.c: Regenerated. * generated/minloc1_4_i2.c: Regenerated. * generated/minloc1_4_i4.c: Regenerated. * generated/minloc1_4_i8.c: Regenerated. * generated/minloc1_4_r10.c: Regenerated. * generated/minloc1_4_r16.c: Regenerated. * generated/minloc1_4_r4.c: Regenerated. * generated/minloc1_4_r8.c: Regenerated. * generated/minloc1_8_i1.c: Regenerated. * generated/minloc1_8_i16.c: Regenerated. * generated/minloc1_8_i2.c: Regenerated. * generated/minloc1_8_i4.c: Regenerated. * generated/minloc1_8_i8.c: Regenerated. * generated/minloc1_8_r10.c: Regenerated. * generated/minloc1_8_r16.c: Regenerated. * generated/minloc1_8_r4.c: Regenerated. * generated/minloc1_8_r8.c: Regenerated. * generated/minval_i1.c: Regenerated. * generated/minval_i16.c: Regenerated. * generated/minval_i2.c: Regenerated. * generated/minval_i4.c: Regenerated. * generated/minval_i8.c: Regenerated. * generated/minval_r10.c: Regenerated. * generated/minval_r16.c: Regenerated. * generated/minval_r4.c: Regenerated. * generated/minval_r8.c: Regenerated. * generated/pack_c10.c: Regenerated. * generated/pack_c16.c: Regenerated. * generated/pack_c4.c: Regenerated. * generated/pack_c8.c: Regenerated. * generated/pack_i1.c: Regenerated. * generated/pack_i16.c: Regenerated. * generated/pack_i2.c: Regenerated. * generated/pack_i4.c: Regenerated. * generated/pack_i8.c: Regenerated. * generated/pack_r10.c: Regenerated. * generated/pack_r16.c: Regenerated. * generated/pack_r4.c: Regenerated. * generated/pack_r8.c: Regenerated. * generated/product_c10.c: Regenerated. * generated/product_c16.c: Regenerated. * generated/product_c4.c: Regenerated. * generated/product_c8.c: Regenerated. * generated/product_i1.c: Regenerated. * generated/product_i16.c: Regenerated. * generated/product_i2.c: Regenerated. * generated/product_i4.c: Regenerated. * generated/product_i8.c: Regenerated. * generated/product_r10.c: Regenerated. * generated/product_r16.c: Regenerated. * generated/product_r4.c: Regenerated. * generated/product_r8.c: Regenerated. * generated/reshape_c10.c: Regenerated. * generated/reshape_c16.c: Regenerated. * generated/reshape_c4.c: Regenerated. * generated/reshape_c8.c: Regenerated. * generated/reshape_i16.c: Regenerated. * generated/reshape_i4.c: Regenerated. * generated/reshape_i8.c: Regenerated. * generated/reshape_r10.c: Regenerated. * generated/reshape_r16.c: Regenerated. * generated/reshape_r4.c: Regenerated. * generated/reshape_r8.c: Regenerated. * generated/shape_i16.c: Regenerated. * generated/shape_i4.c: Regenerated. * generated/shape_i8.c: Regenerated. * generated/spread_c10.c: Regenerated. * generated/spread_c16.c: Regenerated. * generated/spread_c4.c: Regenerated. * generated/spread_c8.c: Regenerated. * generated/spread_i1.c: Regenerated. * generated/spread_i16.c: Regenerated. * generated/spread_i2.c: Regenerated. * generated/spread_i4.c: Regenerated. * generated/spread_i8.c: Regenerated. * generated/spread_r10.c: Regenerated. * generated/spread_r16.c: Regenerated. * generated/spread_r4.c: Regenerated. * generated/spread_r8.c: Regenerated. * generated/sum_c10.c: Regenerated. * generated/sum_c16.c: Regenerated. * generated/sum_c4.c: Regenerated. * generated/sum_c8.c: Regenerated. * generated/sum_i1.c: Regenerated. * generated/sum_i16.c: Regenerated. * generated/sum_i2.c: Regenerated. * generated/sum_i4.c: Regenerated. * generated/sum_i8.c: Regenerated. * generated/sum_r10.c: Regenerated. * generated/sum_r16.c: Regenerated. * generated/sum_r4.c: Regenerated. * generated/sum_r8.c: Regenerated. * generated/transpose_c10.c: Regenerated. * generated/transpose_c16.c: Regenerated. * generated/transpose_c4.c: Regenerated. * generated/transpose_c8.c: Regenerated. * generated/transpose_i16.c: Regenerated. * generated/transpose_i4.c: Regenerated. * generated/transpose_i8.c: Regenerated. * generated/transpose_r10.c: Regenerated. * generated/transpose_r16.c: Regenerated. * generated/transpose_r4.c: Regenerated. * generated/transpose_r8.c: Regenerated. * generated/unpack_c10.c: Regenerated. * generated/unpack_c16.c: Regenerated. * generated/unpack_c4.c: Regenerated. * generated/unpack_c8.c: Regenerated. * generated/unpack_i1.c: Regenerated. * generated/unpack_i16.c: Regenerated. * generated/unpack_i2.c: Regenerated. * generated/unpack_i4.c: Regenerated. * generated/unpack_i8.c: Regenerated. * generated/unpack_r10.c: Regenerated. * generated/unpack_r16.c: Regenerated. * generated/unpack_r4.c: Regenerated. * generated/unpack_r8.c: Regenerated. From-SVN: r148769
2009-06-14fmain.c (main): Don't PREFIX set_args.Francois-Xavier Coudert4-2/+9
* fmain.c (main): Don't PREFIX set_args. * libgfortran.h (set_args): Use iexport_proto. * runtime/main.c (set_args): Use iexport. From-SVN: r148472
2009-06-07re PR fortran/40008 (F2008: Add NEWUNIT= for OPEN statement)Jerry DeLisle6-18/+68
2009-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/40008 * libgfortran.h: Define IOPARM_OPEN_HAS_NEWUNIT. * io/open.c (st_open): Don't error on negative unit number if NEWUNIT was specified. If NEWUNIT is specified, call new function to get the unique unit number and assign it. * io/io.h (st_parameter_open): Add pointer to newunit. Add prototype for next_available_newunit. Add prototype for new function, get_unique_unit_number. * io/unit.c: Declare next_available_newunit. Define the first newunit number. (init_units): Initialize next_available_unit. (get_unique_unit_number): New function. Fix whitespace and comments. * io/transfer.c (data_transfer_init): Update error message to not be specific to OPEN statements. From-SVN: r148253
2009-06-07re PR libfortran/40334 (changed BACKSPACE behaviour at end of file.)Jerry DeLisle2-0/+11
2009-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/40334 * io/list_read.c (list_formatted_read_scalar): Set the end file conditions after a return from EOF error. From-SVN: r148251
2009-06-04re PR libfortran/40330 (incorrect IO)Janne Blomqvist2-2/+17
PR libfortran/40330 Use heap memory for cached format strings. From-SVN: r148149
2009-05-29re PR fortran/40019 (LEADZ and TRAILZ give wrong results)Francois-Xavier Coudert5-6/+169
2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/40019 * trans-types.c (gfc_build_uint_type): Make nonstatic. * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New * prototypes. * trans-types.h (gfc_build_uint_type): Add prototype. * trans-decl.c (gfc_build_intrinsic_function_decls): Build gfor_fndecl_clz128 and gfor_fndecl_ctz128. * trans-intrinsic.c (gfc_conv_intrinsic_leadz, gfc_conv_intrinsic_trailz): Call the right builtins or library functions, and cast arguments to unsigned types first. * simplify.c (gfc_simplify_leadz): Deal with negative arguments. 2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/40019 * intrinsics/bit_intrinsics.c: New file. * gfortran.map (GFORTRAN_1.2): New list. * Makefile.am: Add intrinsics/bit_intrinsics.c. * Makefile.in: Regenerate. 2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/40019 * gfortran.dg/leadz_trailz_1.f90: New test. * gfortran.dg/leadz_trailz_2.f90: New test. From-SVN: r147987
2009-05-29Fix PR40190; use localtime_r, gmtime_r, add fallback implementationsJanne Blomqvist5-8/+165
From-SVN: r147985
2009-05-27Revert part of r147883 that breaks ABIJanne Blomqvist3-1/+10
From-SVN: r147915
2009-05-27re PR libfortran/40187 (c_f_pointer with stride in SHAPE)Thomas Koenig2-27/+41
2009-05-27 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/40187 * intrinsics/iso_c_binding.c (c_f_pointer_u0): Take care of stride in "shape" argument. 2009-05-27 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/40187 * gfortran.dg/c_f_pointer_shape_tests_4.f03: New file. * gfortran.dg/c_f_pointer_shape_tests_4_driver.c: New file. From-SVN: r147894
2009-05-26re PR fortran/39178 (Generate main() rather than using a main in ↵Tobias Burnus4-28/+38
libgfortran/fmain.c) fortran/ 2009-05-26 Tobias Burnus <burnus@net-b.de> PR fortran/39178 * gfortranspec.c (lang_specific_driver): Stop linking libgfortranbegin. * trans-decl.c (gfc_build_builtin_function_decls): Stop making MAIN__ publicly visible. (gfc_build_builtin_function_decls): Add gfor_fndecl_set_args. (create_main_function) New function. (gfc_generate_function_code): Use it. libgfortran/ 2009-05-26 Tobias Burnus <burnus@net-b.de> PR fortran/39178 * runtime/main.c (store_exe_path): Make static and multiple-times callable. (set_args): Call store_exe_path. * libgfortran.h: Remove store_exe_path prototype. * fmain.c (main): Remove store_exe_path call. From-SVN: r147883
2009-05-20re PR libfortran/37754 (READ I/O Performance regression from 4.3 to 4.4/4.5)Jerry DeLisle2-5/+9
2009-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/37754 * io/write_float.def: Simplify format calculation. From-SVN: r147725
2009-05-07re PR libfortran/22423 (Warnings when building libgfortran)François-Xavier Coudert3-47/+56
PR fortran/22423 * io/transfer.c (read_block_direct): Avoid warning. * runtime/string.c (compare0): Avoid warning. From-SVN: r147254
2009-04-30Fix PR libfortran/39667Janne Blomqvist3-19/+22
From-SVN: r147004
2009-04-18re PR fortran/39782 (IO depends on uninitialised value)Janne Blomqvist2-6/+6
2009-04-18 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/39782 * io/transfer.c (data_transfer_init): Don't flush before seek. (finalize_transfer): Remove extra flush. From-SVN: r146308
2009-04-17io.h (is_preconnected): Remove prototype.Janne Blomqvist3-14/+5
2009-04-17 Janne Blomqvist <jb@gcc.gnu.org> * io/io.h (is_preconnected): Remove prototype. * io/unix.c (is_preconnected): Remove function. From-SVN: r146287
2009-04-17configure.ac: Test for -ffunction-sections -fdata-sections and set ↵Ulrich Weigand5-24/+129
SECTION_FLAGS accordingly. * configure.ac: Test for -ffunction-sections -fdata-sections and set SECTION_FLAGS accordingly. * configure: Regenerate. * Makefile.am: Add SECTION_FLAGS to AM_CFLAGS. * Makefile.in: Regenerate. From-SVN: r146241
2009-04-15Fix PR number for r146134Janne Blomqvist1-1/+1
From-SVN: r146135
2009-04-15re PR libfortran/38668 (advance="no": no buffering, truncate and seek)Janne Blomqvist2-1/+5
2009-04-15 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/38688 * io/transfer.c (finalize_transfer): Don't flush for advance='no'. From-SVN: r146134
2009-04-15write.c (itoa): Rename back to gfc_itoa.Danny Smith2-4/+15
* io/write.c (itoa) : Rename back to gfc_itoa. (write_i): Adjust call to write_decimal. (write_integer): Use gfc_itoa. From-SVN: r146079
2009-04-10io.h (move_pos_offset): Remove prototype.Janne Blomqvist4-30/+9
2009-04-10 Janne Blomqvist <jb@gcc.gnu.org> * io/io.h (move_pos_offset): Remove prototype. * io/transfer.c (formatted_transfer_scalar_read): Use sseek instead of move_pos_offset. * io/unix.c (move_pos_offset): Remove. From-SVN: r145876
2009-04-10PR libfortran/39665 libfortran/39702 libfortran/39709Janne Blomqvist3-15/+38
2009-04-10 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/39665 libfortran/39702 libfortran/39709 * io/io.h (st_parameter_dt): Revert aligned attribute from u.p.value. * io/list_read.c (read_complex): Read directly into user pointer. (read_real): Likewise. (list_formatted_read_scalar): Update read_complex and read_real calls. (nml_read_obj): Read directly into user pointer. From-SVN: r145875
2009-04-09re PR libfortran/39665 (Fortran IO using unaligned accesses to read/write ↵Janne Blomqvist3-6/+15
doubles.) 2009-04-09 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/39665 * io/io.h (st_parameter_dt): Add aligned attribute to u.p.value. * io/read.c (convert_real): Add note about alignment requirements. From-SVN: r145852
2009-04-09Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.Jakub Jelinek621-9278/+6830
From-SVN: r145841
2009-04-08open.c (already_open): Test for POSIX close return value.Janne Blomqvist4-3/+9
2009-04-08 Janne Blomqvist <jb@gcc.gnu.org> * io/open.c (already_open): Test for POSIX close return value. * io/unit.c (close_unit_1): Likewise. * io/unix.c (raw_close): Return 0 for success for preconnected units. From-SVN: r145761
2009-04-08string.c (compare0): Use gfc_charlen_type.Janne Blomqvist12-127/+147
2009-04-08 Janne Blomqvist <jb@gcc.gnu.org> * runtime/string.c (compare0): Use gfc_charlen_type. * runtime/error.c (gfc_itoa): Move to io/write.c (xtoa): Rename to gfc_xtoa. * runtime/backtrace.c (show_backtrace): Call gfc_xtoa. * intrinsics/cshift0.c (cshift0): Use index_type for shift arg. * intrinsics/date_and_time.c (date_and_time): Use index_type. (itime_i4): Likewise. (itime_i8): Likewise. (idate_i4): Likewise. (idate_i8): Likewise. (gmtime_i4): Likewise. (gmtime_i8): Likewise. (ltime_i4): Likewise. (ltime_i8): Likewise. * libgfortran.h (gfc_itoa): Remove prototype. (xtoa): Rename prototype to gfc_xtoa. * io/list_read.c (nml_read_obj): Use size_t for string length. * io/transfer.c (read_block_direct): Change nbytes arg from pointer to value. (unformatted_read): Minor cleanup, call read_block_directly properly. (skip_record): Use ssize_t. (next_record_w_unf): Avoid stell() call by calling sseek with SEEK_CUR. (iolength_transfer): Make sure to multiply before cast. * io/intrinsics.c (fgetc): Remove unnecessary variable. * io/format.c (format_hash): Use gfc_charlen_type. * io/write.c (itoa): Move from runtime/error.c:gfc_itoa, rename, make static. (write_i): Call with pointer to itoa. (write_z): Call with pointer to gfc_xtoa. (write_integer): Pointer to itoa. (nml_write_obj): Type cleanup, don't call strlen in loop. From-SVN: r145758
2009-04-06re PR libfortran/39664 (Revision 145571 breaks stdio)H.J. Lu2-18/+29
2009-04-06 H.J. Lu <hongjiu.lu@intel.com> PR libgfortran/39664 * io/unix.c (raw_close): Don't close STDOUT_FILENO, STDERR_FILENO nor STDIN_FILENO. From-SVN: r145636
2009-04-06io.h (struct stream): Rename truncate to trunc.David Edelsohn3-5/+14
* io/io.h (struct stream): Rename truncate to trunc. (struncate): Same. * io/unix.c (raw_init): Rename truncate to trunc. (buf_init): Same. (open_internal): Same. From-SVN: r145608
2009-04-05[multiple changes]Jerry DeLisle13-1752/+2143
2009-04-05 Daniel Kraft <d@domob.eu> PR fortran/38654 * io/read.c (read_f): Reworked to speed up floating point parsing. (convert_real): Use pointer-casting instead of memcpy and temporaries. 2009-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/37754 * io/io.h (format_hash_entry): New structure for hash table. (format_hash_table): The hash table itself. (free_format_data): Revise function prototype. (free_format_hash_table, init_format_hash, free_format_hash): New function prototypes. * io/unit.c (close_unit_1): Use free_format_hash_table. * io/transfer.c (st_read_done, st_write_done): Free format data if internal unit. * io/format.c (free_format_hash_table): New function that frees any memory allocated previously for cached format data. (reset_node): New static helper function to reset the format counters for a format node. (reset_fnode_counters): New static function recursively calls reset_node to traverse the fnode tree. (format_hash): New simple hash function based on XOR, probabalistic, tosses collisions. (save_parsed_format): New static function to save the parsed format data to use again. (find_parsed_format): New static function searches the hash table looking for a match. (free_format_data): Revised to accept pointer to format data rather than the dtp pointer so that the function can be used in more places. (format_lex): Editorial. (parse_format_list): Set flag used to determine of format data hashing is to be used. Internal units are not persistent enough for this. (revert): Move to ne location in file. (parse_format): Use new functions to look for previously parsed format strings and use them rather than re-parse. If not found, saves the parsed format data for later use. 2009-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/37754 * io/transfer.c (formatted_transfer_scalar): Remove this function by factoring it into two new functions, one for read and one for write, eliminating all the conditionals for read or write mode. (formatted transfer_scalar_read): New function. (formatted transfer_scalar_write): New function. (formatted_transfer): Use new functions. 2009-04-05 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/25561 libfortran/37754 * io/io.h (struct stream): Define new stream interface function pointers, and inline functions for accessing it. (struct fbuf): Use int instead of size_t, remove flushed element. (mem_alloc_w): New prototype. (mem_alloc_r): New prototype. (stream_at_bof): Remove prototype. (stream_at_eof): Remove prototype. (file_position): Remove prototype. (flush): Remove prototype. (stream_offset): Remove prototype. (unit_truncate): New prototype. (read_block_form): Change to return pointer, int* argument. (hit_eof): New prototype. (fbuf_init): Change prototype. (fbuf_reset): Change prototype. (fbuf_alloc): Change prototype. (fbuf_flush): Change prototype. (fbuf_seek): Change prototype. (fbuf_read): New prototype. (fbuf_getc_refill): New prototype. (fbuf_getc): New inline function. * io/fbuf.c (fbuf_init): Use int, get rid of flushed. (fbuf_debug): New function. (fbuf_reset): Flush, and return position offset. (fbuf_alloc): Simplify, don't flush, just realloc. (fbuf_flush): Make usable for read mode, salvage remaining bytes. (fbuf_seek): New whence argument. (fbuf_read): New function. (fbuf_getc_refill): New function. * io/file_pos.c (formatted_backspace): Use new stream interface. (unformatted_backspace): Likewise. (st_backspace): Make sure format buffer is reset, use new stream interface, use unit_truncate. (st_endfile): Likewise. (st_rewind): Likewise. * io/intrinsics.c: Use new stream interface. * io/list_read.c (push_char): Don't use u.p.scratch, use realloc to resize. (free_saved): Don't check u.p.scratch. (next_char): Use new stream interface, use fbuf_getc() for external files. (finish_list_read): flush format buffer. (nml_query): Update to use modified interface:s * io/open.c (test_endfile): Use new stream interface. (edit_modes): Likewise. (new_unit): Likewise, set bytes_left to 1 for stream files. * io/read.c (read_l): Use new read_block_form interface. (read_utf8): Likewise. (read_utf8_char1): Likewise. (read_default_char1): Likewise. (read_utf8_char4): Likewise. (read_default_char4): Likewise. (read_a): Likewise. (read_a_char4): Likewise. (read_decimal): Likewise. (read_radix): Likewise. (read_f): Likewise. * io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove usage of u.p.line_buffer. (read_block_form): Update interface to return pointer, use fbuf_read for direct access. (read_block_direct): Update to new stream interface. (write_block): Use mem_alloc_w for internal I/O. (write_buf): Update to new stream interface. (formatted_transfer_scalar): Don't use u.p.line_buffer, use fbuf_seek for external files. (us_read): Update to new stream interface. (us_write): Likewise. (data_transfer_init): Always check if we switch modes and flush. (skip_record): Use new stream interface, fix comparison. (next_record_r): Check for and reset u.p.at_eof, use new stream interface, use fbuf_getc for spacing. (write_us_marker): Update to new stream interface, don't inline. (next_record_w_unf): Likewise. (sset): New function. (next_record_w): Use new stream interface, use fbuf for printing newline. (next_record): Use new stream interface. (finalize_transfer): Remove sfree call, use new stream interface. (st_iolength_done): Don't use u.p.scratch. (st_read): Don't check for end of file. (st_read_done): Don't use u.p.scratch, use unit_truncate. (hit_eof): New function. * io/unit.c (init_units): Always init fbuf for formatted units. (update_position): Use new stream interface. (unit_truncate): New function. (finish_last_advance_record): Use fbuf to print newline. * io/unix.c: Remove unused SSIZE_MAX macro. (BUFFER_SIZE): Make static const variable rather than macro. (struct unix_stream): Remove dirty_offset, len, method, small_buffer. Order elements by decreasing size. (struct int_stream): Remove. (move_pos_offset): Remove usage of dirty_offset. (reset_stream): Remove. (do_read): Rename to raw_read, update to match new stream interface. (do_write): Rename to raw_write, update to new stream interface. (raw_seek): New function. (raw_tell): New function. (raw_truncate): New function. (raw_close): New function. (raw_flush): New function. (raw_init): New function. (fd_alloc): Remove. (fd_alloc_r_at): Remove. (fd_alloc_w_at): Remove. (fd_sfree): Remove. (fd_seek): Remove. (fd_truncate): Remove. (fd_sset): Remove. (fd_read): Remove. (fd_write): Remove. (fd_close): Remove. (fd_open): Remove. (fd_flush): Rename to buf_flush, update to new stream interface and unix_stream. (buf_read): New function. (buf_write): New function. (buf_seek): New function. (buf_tell): New function. (buf_truncate): New function. (buf_close): New function. (buf_init): New function. (mem_alloc_r_at): Rename to mem_alloc_r, change prototype. (mem_alloc_w_at): Rename to mem_alloc_w, change prototype. (mem_read): Change to match new stream interface. (mem_write): Likewise. (mem_seek): Likewise. (mem_tell): Likewise. (mem_truncate): Likewise. (mem_close): Likewise. (mem_flush): New function. (mem_sfree): Remove. (empty_internal_buffer): Cast to correct type. (open_internal): Use correct type, init function pointers. (fd_to_stream): Test whether to open file as buffered or raw. (output_stream): Remove mode set. (error_stream): Likewise. (flush_all_units_1): Use new stream interface. (flush_all_units): Likewise. (stream_at_bof): Remove. (stream_at_eof): Remove. (file_position): Remove. (file_length): Update logic to use stream interface. (flush): Remove. (stream_offset): Remove. * io/write.c (write_utf8_char4): Use int instead of size_t. (write_x): Extra safety check. (namelist_write_newline): Use new stream interface. From-SVN: r145571
2009-03-28re PR libfortran/33595 (FAIL: gfortran.dg/nint_2.f90 -O0 execution test)John David Anglin2-12/+19
PR fortran/33595 * intrinsics/c99_functions.c (round): Use floor instead of ceil. Revise checks to round up. (roundf): Likewise. From-SVN: r145209
2009-03-28string_intrinsics.c: #include <assert.h>Daniel Kraft3-12/+56
2009-03-28 Daniel Kraft <d@domob.eu> * intrinsics/string_intrinsics.c: #include <assert.h> * intrinsics/string_intrinsics_inc.c (string_trim): Use string_len_trim instead of calculating the length directly. (string_len_trim): For KIND=1, speed search up. 2009-03-28 Daniel Kraft <d@domob.eu> * gfortran.dg/trim_1.f90: New test. From-SVN: r145192
2009-03-24re PR fortran/39528 (repeated entries are not read when using list-directed ↵Jerry DeLisle2-4/+10
input) 2009-03-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/39528 * io/list_read.c (list_formatted_read_scalar): Move check for read completion to just after the check for a repeated value. From-SVN: r145030
2009-03-22Revert part of patch accidentally committed to trunk rather than fortran-dev ↵Janne Blomqvist4-530/+440
(I hate svn) From-SVN: r144994
2009-03-22PR libfortran/25561 libfortran/37754Janne Blomqvist4-440/+530
2009-03-22 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/25561 libfortran/37754 * io/io.h (struct stream): Define new stream interface function pointers, and inline functions for accessing it. (struct fbuf): Use int instead of size_t, remove flushed element. (mem_alloc_w): New prototype. (mem_alloc_r): New prototype. (stream_at_bof): Remove prototype. (stream_at_eof): Remove prototype. (file_position): Remove prototype. (flush): Remove prototype. (stream_offset): Remove prototype. (unit_truncate): New prototype. (read_block_form): Change to return pointer, int* argument. (hit_eof): New prototype. (fbuf_init): Change prototype. (fbuf_reset): Change prototype. (fbuf_alloc): Change prototype. (fbuf_flush): Change prototype. (fbuf_seek): Change prototype. (fbuf_read): New prototype. (fbuf_getc_refill): New prototype. (fbuf_getc): New inline function. * io/fbuf.c (fbuf_init): Use int, get rid of flushed. (fbuf_debug): New function. (fbuf_reset): Flush, and return position offset. (fbuf_alloc): Simplify, don't flush, just realloc. (fbuf_flush): Make usable for read mode, salvage remaining bytes. (fbuf_seek): New whence argument. (fbuf_read): New function. (fbuf_getc_refill): New function. * io/file_pos.c (formatted_backspace): Use new stream interface. (unformatted_backspace): Likewise. (st_backspace): Make sure format buffer is reset, use new stream interface, use unit_truncate. (st_endfile): Likewise. (st_rewind): Likewise. * io/intrinsics.c: Use new stream interface. * io/list_read.c (push_char): Don't use u.p.scratch, use realloc to resize. (free_saved): Don't check u.p.scratch. (next_char): Use new stream interface, use fbuf_getc() for external files. (finish_list_read): flush format buffer. (nml_query): Update to use modified interface:s * io/open.c (test_endfile): Use new stream interface. (edit_modes): Likewise. (new_unit): Likewise, set bytes_left to 1 for stream files. * io/read.c (read_l): Use new read_block_form interface. (read_utf8): Likewise. (read_utf8_char1): Likewise. (read_default_char1): Likewise. (read_utf8_char4): Likewise. (read_default_char4): Likewise. (read_a): Likewise. (read_a_char4): Likewise. (read_decimal): Likewise. (read_radix): Likewise. (read_f): Likewise. * io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove usage of u.p.line_buffer. (read_block_form): Update interface to return pointer, use fbuf_read for direct access. (read_block_direct): Update to new stream interface. (write_block): Use mem_alloc_w for internal I/O. (write_buf): Update to new stream interface. (formatted_transfer_scalar): Don't use u.p.line_buffer, use fbuf_seek for external files. (us_read): Update to new stream interface. (us_write): Likewise. (data_transfer_init): Always check if we switch modes and flush. (skip_record): Use new stream interface, fix comparison. (next_record_r): Check for and reset u.p.at_eof, use new stream interface, use fbuf_getc for spacing. (write_us_marker): Update to new stream interface, don't inline. (next_record_w_unf): Likewise. (sset): New function. (next_record_w): Use new stream interface, use fbuf for printing newline. (next_record): Use new stream interface. (finalize_transfer): Remove sfree call, use new stream interface. (st_iolength_done): Don't use u.p.scratch. (st_read): Don't check for end of file. (st_read_done): Don't use u.p.scratch, use unit_truncate. (hit_eof): New function. * io/unit.c (init_units): Always init fbuf for formatted units. (update_position): Use new stream interface. (unit_truncate): New function. (finish_last_advance_record): Use fbuf to print newline. * io/unix.c: Remove unused SSIZE_MAX macro. (BUFFER_SIZE): Make static const variable rather than macro. (struct unix_stream): Remove dirty_offset, len, method, small_buffer. Order elements by decreasing size. (struct int_stream): Remove. (move_pos_offset): Remove usage of dirty_offset. (reset_stream): Remove. (do_read): Rename to raw_read, update to match new stream interface. (do_write): Rename to raw_write, update to new stream interface. (raw_seek): New function. (raw_tell): New function. (raw_truncate): New function. (raw_close): New function. (raw_flush): New function. (raw_init): New function. (fd_alloc): Remove. (fd_alloc_r_at): Remove. (fd_alloc_w_at): Remove. (fd_sfree): Remove. (fd_seek): Remove. (fd_truncate): Remove. (fd_sset): Remove. (fd_read): Remove. (fd_write): Remove. (fd_close): Remove. (fd_open): Remove. (fd_flush): Rename to buf_flush, update to new stream interface and unix_stream. (buf_read): New function. (buf_write): New function. (buf_seek): New function. (buf_tell): New function. (buf_truncate): New function. (buf_close): New function. (buf_init): New function. (mem_alloc_r_at): Rename to mem_alloc_r, change prototype. (mem_alloc_w_at): Rename to mem_alloc_w, change prototype. (mem_read): Change to match new stream interface. (mem_write): Likewise. (mem_seek): Likewise. (mem_tell): Likewise. (mem_truncate): Likewise. (mem_close): Likewise. (mem_flush): New function. (mem_sfree): Remove. (empty_internal_buffer): Cast to correct type. (open_internal): Use correct type, init function pointers. (fd_to_stream): Test whether to open file as buffered or raw. (output_stream): Remove mode set. (error_stream): Likewise. (flush_all_units_1): Use new stream interface. (flush_all_units): Likewise. (stream_at_bof): Remove. (stream_at_eof): Remove. (file_position): Remove. (file_length): Update logic to use stream interface. (flush): Remove. (stream_offset): Remove. * io/write.c (write_utf8_char4): Use int instead of size_t. (write_x): Extra safety check. (namelist_write_newline): Use new stream interface. [[Split portion of a mixed commit.]] From-SVN: r144993.2
2009-03-09Fix PR number reference in ChangeLog from 39409 to 39402.Jerry DeLisle1-1/+1
From-SVN: r144720
2009-03-09re PR libfortran/39402 (gfortran 20090306: internal write of 0.0 with F0.3 ↵Jerry DeLisle2-1/+7
gives **) 2009-03-08 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/39409 * io/write_float.def (output_float): Handle F0.d formatting correctly for any d when value is 0.0. From-SVN: r144718
2009-03-01backport: Support GNU/kOpenSolaris.Ralf Wildenhues2-7/+11
Backport from git Libtool: 2009-01-19 Robert Millan <rmh@aybabtu.com> Support GNU/kOpenSolaris. * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG) [kopensolaris*-gnu]: Recognize GNU/kOpenSolaris. libjava/classpath/ * configure: Regenerate. libjava/ * configure: Regenerate. libssp/ * configure: Regenerate. libobjc/ * configure: Regenerate. libstdc++-v3/ * configure: Regenerate. libgfortran/ * configure: Regenerate. boehm-gc/ * configure: Regenerate. gcc/ * configure: Regenerate. libmudflap/ * configure: Regenerate. zlib/ * configure: Regenerate. libffi/ * configure: Regenerate. libgomp/ * configure: Regenerate. From-SVN: r144527
2009-01-21re PR fortran/38887 (run-time abort for MVBITS with run-time zero sized ↵Daniel Kraft16-45/+65
array arguments) 2009-01-21 Daniel Kraft <d@domob.eu> * trans-stmt.c (gfc_conv_elemental_dependencies): Cleaned up comment. 2009-01-21 Daniel Kraft <d@domob.eu> PR fortran/38887 * runtime/in_unpack_generic.c (internal_unpack): Return instead of abort when called with empty array. * m4/in_unpack.m4: Ditto. * generated/in_unpack_i1.c: Regenerated. * generated/in_unpack_i2.c: Regenerated. * generated/in_unpack_i4.c: Regenerated. * generated/in_unpack_i8.c: Regenerated. * generated/in_unpack_i16.c: Regenerated. * generated/in_unpack_r4.c: Regenerated. * generated/in_unpack_r8.c: Regenerated. * generated/in_unpack_r10.c: Regenerated. * generated/in_unpack_r16.c: Regenerated. * generated/in_unpack_c4.c: Regenerated. * generated/in_unpack_c8.c: Regenerated. * generated/in_unpack_c10.c: Regenerated. * generated/in_unpack_c16.c: Regenerated. 2009-01-21 Daniel Kraft <d@domob.eu> PR fortran/38887 * gfortran.dg/mvbits_5.f90: New test. From-SVN: r143541
2009-01-13re PR libfortran/38772 (r143102 reveals missed error checking on floating ↵Jerry DeLisle2-2/+8
point reads) 2009-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/38772 * io/read.c (read_f): Clean up loop conditions for BZ/BN, allowing proper digit testing. White space fix. From-SVN: r143327
2009-01-05re PR libfortran/38735 ([4.4 Regresssion] Default BLANK= mode for internal ↵Jerry DeLisle2-1/+7
units is wrong) 2009-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/38735 * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for internal units. From-SVN: r143102
2008-12-29re PR fortran/31832 (FAIL: gfortran.dg/integer_exponentiation_2.f90 at -O1 ↵John David Anglin6-0/+55
and above) PR fortran/31832 * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for broken powf. * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it. * intrinsics/c99_functions.c: Use internal powf implementation if HAVE_BROKEN_POWF is defined. * configure: Rebuilt. * config.h.in: Rebuilt. From-SVN: r142952
2008-12-22re PR fortran/37472 (bad output on default-format write of double in common ↵Jerry DeLisle2-2/+8
block with -m64) 2008-12-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/37472 * io/write_float.def (output_float_FMT_G_): Modify calculation of temp to avoid sensitivity to round-off. From-SVN: r142884
2008-12-21re PR fortran/38398 (g0.w edit descriptor: Update for F2008 Tokyo meeting ↵Jerry DeLisle5-23/+42
changes) 2008-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/38398 * io/io.h (st_parameter_dt): Add new bit to keep track of when to suppress blanks for g0 formatting. * io/transfer.c (formatted_transfer_scalar): Always call write_real_g0 for g0 formatting. * io.c (write.c): Do not use ES formatting and use new bit to suppress blanks. * io/write_float.def (output_float): Adjust the location of setting the width so that it can be adjusted when suppressing blanks. Set number of blanks to zero when dtp->u.p.g0_no_blanks is set. Do some minor code clean-up and add some white space for readability. From-SVN: r142871
2008-12-18Backport from upstream Libtool:Ralf Wildenhues2-84/+118
* libltdl.m4 (_LT_SYS_DYNAMIC_LINKER) (_LT_LINKER_SHLIBS): Add cache variables to tests that require the linker to work. For shlibpath_overrides_runpath, this also changes the semantics to let the result from the C compiler take precedence. boehm-gc/ * configure: Regenerate. fixincludes/ * configure: Regenerate. gcc/ * configure: Regenerate. libffi/ * configure: Regenerate. libgfortran/ * configure: Regenerate. libgomp/ * configure: Regenerate. libjava/classpath/ * configure: Regenerate. libjava/ * configure: Regenerate. libmudflap/ * configure: Regenerate. libobjc/ * configure: Regenerate. libssp/ * configure: Regenerate. libstdc++-v3/ * configure: Regenerate. zlib/ * configure: Regenerate. From-SVN: r142817
2008-12-14re PR fortran/38504 (double minus sign when printing integer?)Jerry DeLisle2-1/+14
2008-12-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/38504 io/write.c (write_decimal): Skip extra sign '-' at beginning of string returned by gfc_itoa. From-SVN: r142747
2008-12-09re PR fortran/38430 (gfortran.dg/streamio_1.f90, 10, 14, 2, 6 now fails)Jerry DeLisle2-12/+22
2008-12-08 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/38430 * io/transfer.c (data_transfer_init): Move constraint check for REC= and STREAM access into condition for other REC= constraints to simplify. Comment out this constraint to avoid breaking compatibility with 4.3 until later. Added a TODO for above comment and this one. Fix test for max pos. From-SVN: r142575
2008-12-06re PR fortran/38291 (Rejects I/O with POS= if FMT=*)Jerry DeLisle2-2/+21
2008-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/38291 * io/transfer.c (data_transfer_init): Add fbuf_flush inadvertently ommitted. Add check for invalid use of REC= with ACCESS="stream". Fix comment. From-SVN: r142528
2008-12-06* runtime/main.c (store_exe_path): Don't crash if argv0 is NULL.Adam Nemet2-1/+6
From-SVN: r142526