aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
AgeCommit message (Collapse)AuthorFilesLines
2018-05-10re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with ↵Thomas Koenig2-7/+20
KIND=/BACK=) 2018-05-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/54613 * intrinsic.texi: Document BACK for MINLOC and MAXLOC. From-SVN: r260116
2018-05-10re PR fortran/68846 (Pointer function as LValue doesn't work when the ↵Paul Thomas2-0/+9
assignment regards a dummy argument.) 2018-05-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/68846 PR fortran/70864 * resolve.c (get_temp_from_expr): The temporary must not have dummy or intent attributes. 2018-05-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/68846 * gfortran.dg/temporary_3.f90 : New test. PR fortran/70864 * gfortran.dg/temporary_2.f90 : New test. From-SVN: r260113
2018-05-08re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with ↵Thomas Koenig4-30/+128
KIND=/BACK=) 2018-05-08 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/54613 * check.c (gfc_check_minmaxloc): Remove error for BACK not being implemented. Use gfc_logical_4_kind for BACK. * simplify.c (min_max_choose): Add optional argument back_val. Handle it. (simplify_minmaxloc_to_scalar): Add argument back_val. Pass back_val to min_max_choose. (simplify_minmaxloc_to_nodim): Likewise. (simplify_minmaxloc_to_array): Likewise. (gfc_simplify_minmaxloc): Add argument back, handle it. Pass back_val to specific simplification functions. (gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back, pass it on to gfc_simplify_minmaxloc. (gfc_simplify_maxloc): Likewise. * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust comment. If BACK is true, use greater or equal (or lesser or equal) insteal of greater (or lesser). Mark the condition of having found a value which exceeds the limit as unlikely. 2018-05-08 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/54613 * m4/iforeach-s.m4: Remove assertion that back is zero. * m4/iforeach.m4: Likewise. Remove leading 'do' before implementation start. * m4/ifunction-s.m4: Remove assertion that back is zero. * m4/ifunction.m4: Likewise. Remove for loop if HAVE_BACK_ARG is defined. * m4/maxloc0.m4: Reorganize loops. Split loops between >= and =, depending if back is true. Mark the condition of having found a value which exceeds the limit as unlikely. * m4/minloc0.m4: Likewise. * m4/maxloc1.m4: Likewise. * m4/minloc1.m4: Likewise. * m4/maxloc1s.m4: Handle back argument. * m4/minloc1s.m4: Likewise. * m4/maxloc2s.m4: Remove assertion that back is zero. Remove special handling of loop start. Handle back argument. * m4/minloc2s.m4: Likewise. * generated/iall_i1.c: Regenerated. * generated/iall_i16.c: Regenerated. * generated/iall_i2.c: Regenerated. * generated/iall_i4.c: Regenerated. * generated/iall_i8.c: Regenerated. * generated/iany_i1.c: Regenerated. * generated/iany_i16.c: Regenerated. * generated/iany_i2.c: Regenerated. * generated/iany_i4.c: Regenerated. * generated/iany_i8.c: Regenerated. * generated/iparity_i1.c: Regenerated. * generated/iparity_i16.c: Regenerated. * generated/iparity_i2.c: Regenerated. * generated/iparity_i4.c: Regenerated. * generated/iparity_i8.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_16_s1.c: Regenerated. * generated/maxloc0_16_s4.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_4_s1.c: Regenerated. * generated/maxloc0_4_s4.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/maxloc0_8_s1.c: Regenerated. * generated/maxloc0_8_s4.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_16_s1.c: Regenerated. * generated/maxloc1_16_s4.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_4_s1.c: Regenerated. * generated/maxloc1_4_s4.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/maxloc1_8_s1.c: Regenerated. * generated/maxloc1_8_s4.c: Regenerated. * generated/maxloc2_16_s1.c: Regenerated. * generated/maxloc2_16_s4.c: Regenerated. * generated/maxloc2_4_s1.c: Regenerated. * generated/maxloc2_4_s4.c: Regenerated. * generated/maxloc2_8_s1.c: Regenerated. * generated/maxloc2_8_s4.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_16_s1.c: Regenerated. * generated/minloc0_16_s4.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_4_s1.c: Regenerated. * generated/minloc0_4_s4.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/minloc0_8_s1.c: Regenerated. * generated/minloc0_8_s4.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_16_s1.c: Regenerated. * generated/minloc1_16_s4.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_4_s1.c: Regenerated. * generated/minloc1_4_s4.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/minloc1_8_s1.c: Regenerated. * generated/minloc1_8_s4.c: Regenerated. * generated/minloc2_16_s1.c: Regenerated. * generated/minloc2_16_s4.c: Regenerated. * generated/minloc2_4_s1.c: Regenerated. * generated/minloc2_4_s4.c: Regenerated. * generated/minloc2_8_s1.c: Regenerated. * generated/minloc2_8_s4.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/norm2_r10.c: Regenerated. * generated/norm2_r16.c: Regenerated. * generated/norm2_r4.c: Regenerated. * generated/norm2_r8.c: Regenerated. * generated/parity_l1.c: Regenerated. * generated/parity_l16.c: Regenerated. * generated/parity_l2.c: Regenerated. * generated/parity_l4.c: Regenerated. * generated/parity_l8.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/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. 2018-05-08 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/54613 * gfortran.dg/minmaxloc_12.f90: New test case. * gfortran.dg/minmaxloc_13.f90: New test case. From-SVN: r260023
2018-05-07scanner.c (preprocessor_line): Call linemap_add after a line directive that ↵Jeff Law2-0/+9
changes the current filename. * scanner.c (preprocessor_line): Call linemap_add after a line directive that changes the current filename. * gfortran.dg/linefile.f90: New test. From-SVN: r260010
2018-05-06re PR fortran/85507 (ICE in gfc_dep_resolver, at fortran/dependency.c:2258)Andre Vehreschild3-4/+11
gcc/fortran/ChangeLog: 2018-05-06 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/85507 * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension introduced by r259385. * trans-intrinsic.c (conv_caf_send): Always report a dependency for same variables in coarray assignments. gcc/testsuite/ChangeLog: 2018-05-06 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/85507 * gfortran.dg/coarray_dependency_1.f90: New test. * gfortran.dg/coarray_lib_comm_1.f90: Fix counting caf-expressions. From-SVN: r259974
2018-05-02[openacc] Add __builtin_goacc_parlevel_{id,size}Tom de Vries2-0/+9
2018-05-02 Tom de Vries <tom@codesourcery.com> PR libgomp/82428 * builtins.def (DEF_GOACC_BUILTIN_ONLY): Define. * omp-builtins.def (BUILT_IN_GOACC_PARLEVEL_ID) (BUILT_IN_GOACC_PARLEVEL_SIZE): New builtin. * builtins.c (expand_builtin_goacc_parlevel_id_size): New function. (expand_builtin): Call expand_builtin_goacc_parlevel_id_size. * doc/extend.texi (Other Builtins): Add __builtin_goacc_parlevel_id and __builtin_goacc_parlevel_size. * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define. * c-c++-common/goacc/builtin-goacc-parlevel-id-size-2.c: New test. * c-c++-common/goacc/builtin-goacc-parlevel-id-size.c: New test. * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Use __builtin_goacc_parlevel_{id,size}. * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/tile-1.c: Same. From-SVN: r259850
2018-04-24re PR fortran/85520 (Out of memory when declaring a character with len << 0)Steven G. Kargl2-1/+10
2018-04-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85520 * decl.c (gfc_match_char_spec): Check for negative length and set to 0. 2018-04-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85520 * gfortran.dg/pr85520.f90: New test. From-SVN: r259623
2018-04-14re PR fortran/81773 ([Coarray] Get with vector index on lhs leads to ↵Andre Vehreschild4-27/+130
incorrect caf_get_by_ref() call.) gcc/fortran/ChangeLog: 2018-04-14 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/81773 PR fortran/83606 * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored during dependency computation. They define no data dependency. * trans-array.c (conv_array_index_offset): The stride can not be set here, prevent fail. * trans-intrinsic.c (conv_caf_send): Add creation of temporary array for caf_get's result and copying to the array with vectorial indexing. gcc/testsuite/ChangeLog: 2018-04-14 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/81773 PR fortran/83606 * gfortran.dg/coarray/get_to_indexed_array_1.f90: New test. * gfortran.dg/coarray/get_to_indirect_array.f90: New test. From-SVN: r259385
2018-04-14re PR fortran/85387 (incorrect output with optimization /= 0)Thomas Koenig2-0/+23
2018-04-14 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85387 * frontend-passes.c (traverse_io_block): Check for start, end or stride being defined by an outer implied DO loop. 2018-04-14 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85387 * gfortran.dg/implied_do_io_5.f90: New test. From-SVN: r259384
2018-04-12re PR fortran/83064 (DO CONCURRENT and auto-parallelization)Thomas Koenig2-4/+11
2018-04-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83064 PR testsuite/85346 * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind for annotation and remove dependence on -ftree-parallelize-loops. 2018-04-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83064 PR testsuite/85346 * gfortran.dg/do_concurrent_5.f90: Dynamically allocate main work array and move test to libgomp/testsuite/libgomp.fortran. * gfortran.dg/do_concurrent_6.f90: New test. 2018-04-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83064 PR testsuite/85346 * testsuite/libgomp.fortran/do_concurrent_5.f90: Move modified test from gfortran.dg to here. From-SVN: r259359
2018-04-10re PR fortran/85313 (gcc/fortran/openmp.c: 2 * confused logic ?)Jakub Jelinek2-6/+8
PR fortran/85313 * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;. (resolve_oacc_nested_loops): Likewise. Formatting fix. * gfortran.dg/gomp/pr85313.f90: New test. From-SVN: r259275
2018-04-09re PR fortran/83064 (DO CONCURRENT and auto-parallelization)Thomas Koenig2-1/+11
2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83064 * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for parallell processing of DO CONCURRENT -ftree-parallelize-loops is set. 2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83064 * gfortran.dg/do_concurrent_5.f90: New test. * gfortran.dg/vect/vect-do-concurrent-1.f90: Adjust dg-bogus message. From-SVN: r259258
2018-04-09re PR fortran/51260 (PARAMETER array with constructor initializer: ↵Thomas Koenig2-0/+16
Compile-time simplify single element access) 2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/51260 * resolve.c (resolve_variable): Simplify cases where access to a parameter array results in a single constant. 2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/51260 * gfortran.dg/parameter_array_element_3.f90: New test. From-SVN: r259256
2018-04-02re PR fortran/85102 (ICE in gfc_conv_intrinsic_dot_product, at ↵Thomas Koenig2-0/+33
fortran/trans-intrinsic.c:4464) 2018-04-02 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85102 * decl.c (variable_decl): If upper or lower bounds simplify to a constant, use that. 2018-04-02 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85102 * gfortran.dg/array_simplify_2.f90: New test. From-SVN: r259014
2018-03-30re PR fortran/84931 (Expansion of array constructor with constant ↵Paul Thomas2-33/+33
implied-do-object goes sideways) 2018-03-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/84931 * simplify.c (gfc_convert_constant): Handle case of array constructors within an array that has no iterator and improve the conciseness of this section of code. 2018-03-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/84931 * gfortran.dg/array_constructor_53.f90: New test. From-SVN: r258977
2018-03-30re PR fortran/85111 (ICE in min_max_choose, at fortran/simplify.c:4884 (and ↵Thomas Koenig1-0/+9
others)) 2017-03-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85111 * array.c (gfc_resolve_character_array_constructor): Early exit for zero-size arrays. * simplify.c (simplify_transformation_to_array): Exit early if the result size is zero. (simplify_minmaxloc_to_array): Likewise. 2017-03-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85111 * gfortran.dg/zero_sized_10.f90: New test. Add ChangeLog entries for r258973. From-SVN: r258974
2018-03-30re PR fortran/85111 (ICE in min_max_choose, at fortran/simplify.c:4884 (and ↵Thomas Koenig2-2/+16
others)) 2017-03-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85111 * array.c (gfc_resolve_character_array_constructor): Early exit for zero-size arrays. * simplify.c (simplify_transformation_to_array): Exit early if the result size is zero. (simplify_minmaxloc_to_array): Likewise. 2017-03-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85111 * gfortran.dg/zero_sized_10.f90: New test. From-SVN: r258973
2018-03-28re PR fortran/69497 (ICE in gfc_free_namespace, at fortran/symbol.c:3701)Mikael Morin2-4/+18
PR fortran/69497 * symbol.c (gfc_symbol_done_2): Start freeing namespaces from the root. (gfc_free_namespace): Restore assert (revert r258839). From-SVN: r258935
2018-03-28gfortran.h (gfc_dt): Rename default_exp field to dec_ext.Jakub Jelinek5-6/+16
* gfortran.h (gfc_dt): Rename default_exp field to dec_ext. * ioparm.def (IOPARM_dt_default_exp): Rename to ... (IOPARM_dt_dec_ext): ... this. * trans-io.c (build_dt): Adjust for default_exp renaming to dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext. * io.c (match_io): Likewise. * io/io.h (IOPARM_DT_DEFAULT_EXP): Rename to ... (IOPARM_DT_DEC_EXT): ... this. * io/list_read.c (parse_real): Adjust for IOPARM_DT_DEFAULT_EXP renaming to IOPARM_DT_DEC_EXT. (read_real): Likewise. * io/read.c (read_f): Likewise. From-SVN: r258920
2018-03-27re PR fortran/85084 (ICE: out of memory allocating 18446744073709551600 ↵Thomas Koenig2-4/+10
bytes ...) 2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85084 * frontend-passes.c (gfc_run_passes): Do not run front-end optimizations if a previous error occurred. 2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85084 * gfortran.dg/matmul_rank_1.f90: New test. From-SVN: r258900
2018-03-27re PR fortran/85083 (ICE in gfc_convert_to_structure_constructor, at ↵Thomas Koenig2-0/+8
fortran/primary.c:2915) 2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> Harald Anlauf <anlauf@gmx.de> PR fortran/85083 * primary.c (gfc_convert_to_structure_constructor): Check conformance of argument types in structure constructor. 2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> Harald Anlauf <anlauf@gmx.de> * gfortran.dg/structure_constructor_15.f90: New test. Co-Authored-By: Harald Anlauf <anlauf@gmx.de> From-SVN: r258899
2018-03-26re PR fortran/66709 (ICE on formatted io with parameter array specifier fmt)Thomas Koenig2-1/+50
2018-03-26 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/66709 * io.c: Include constructor.h. (resolve_tag_format): For a constant character array, concatenate into a single character expression. 2018-03-26 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/66709 * gfortran.dg/parameter_array_format.f90: New test. From-SVN: r258850
2018-03-25re PR fortran/84924 (Erroneous error in C_F_POINTER)Seth Johnson2-1/+8
2018-03-25 Seth Johnson <johnsonsr@ornl.gov> Dominique d'Humieres <dominiq@gcc.gnu.org> PR fortran/84924 * check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable scalar derived type with -std=f2003 and -std=f2008. 2018-03-25 Seth Johnson <johnsonsr@ornl.gov> Dominique d'Humieres <dominiq@gcc.gnu.org> PR fortran/84924 * gfortran.dg/scalar_pointer_1.f90: New test. Co-Authored-By: Dominique d'Humieres <dominiq@gcc.gnu.org> From-SVN: r258843
2018-03-25Fix changelogJerry DeLisle1-1/+1
From-SVN: r258841
2018-03-25fix changelogJerry DeLisle1-1/+1
From-SVN: r258840
2018-03-25re PR fortran/69497 (ICE in gfc_free_namespace, at fortran/symbol.c:3701)Jerry DeLisle2-3/+10
2018-03-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> Dominique d'Humieres <dominiq@gcc.gnu.org> PR fortran/89497 * symbol.c (gfc_free_namespace): Delete the assert and only if refs count is equals zero, free the namespace. Otherwise, something is halfway and other errors will resound. * gfortran.dg/pr89497.f90: New test. Co-Authored-By: Dominique d'Humieres <dominiq@gcc.gnu.org> From-SVN: r258839
2018-03-24re PR fortran/70068 (ICE: out of memory on involving empty substring)Thomas Koenig2-6/+16
2018-03-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/70068 * expr.c (find_substring_ref): Change types of start, end and length variables to gfc_charlen_t. Set length to zero for empty substring. 2018-03-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/70068 * gfortran.dg/substr_7.f90: New test. From-SVN: r258835
2018-03-24re PR fortran/42651 (Functions with result: Wrongly accepts attributes to ↵Steven G. Kargl2-1/+19
function name) 2018-03-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/42651 * decl.c (check_function_name): Improved error message (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name. 2018-03-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/42651 * gfortran.dg/pr42651.f90: New test. * gfortran.dg/func_result_7.f90: Update error message. From-SVN: r258834
2018-03-22re PR fortran/84922 (fortran reports inconsistency in rank of arguments in ↵Steven G. Kargl2-9/+27
interface and contained procedures) 2018-03-22 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/84922 * decl.c (get_proc_name): If the MODULE prefix appears in interface body, then it must appear on the contained subroutine or function. While here, fix nearby mis-indented code. 2018-03-22 Steven G. Kargl <kargl@gcc.gnu.org PR fortran/84922 * gfortran.dg/interface_42.f90: New test. * gfortran.dg/interface_43.f90: New test. From-SVN: r258784
2018-03-21re PR fortran/84957 (ICE in gfc_sym_type, at fortran/trans-types.c:2255)Thomas Koenig2-0/+7
2018-03-21 Thomas Koenig <tkoenig@gcc.gnu.org> Harald Anlauf <anlauf@gmx.de> PR fortran/84957 * trans-types.c (gfc_sym_type): Do not dereference NULL pointer. 2018-03-21 Thomas Koenig <tkoenig@gcc.gnu.org> Harald Anlauf <anlauf@gmx.de> PR fortran/84957 * gfortran.dg/pr84957.f90: New test. Co-Authored-By: Harald Anlauf <anlauf@gmx.de> From-SVN: r258745
2018-03-21PR 84615 Regressions due to type mismatch with character functionsJanne Blomqvist2-3/+13
Since the kind of the hidden character length variable is not part of the character variable definition, we must ensure that character lengths are always of the same kind in interfaces, regardless of how they were declared in the source. This patch ensures this when calling a procedure. Regtested on x86_64-pc-linux-gnu and i686-pc-linux-gnu. gcc/fortran/ChangeLog: 2018-03-21 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/84615 * trans-expr.c (gfc_conv_procedure_call): Convert charlen to gfc_charlen_type_node when calling procedure. gcc/testsuite/ChangeLog: 2018-03-21 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/84615 * gfortran.dg/char_result_17.f90: New test. From-SVN: r258736
2018-03-21re PR fortran/85001 (ICE in gfc_build_array_type, at fortran/trans-types.c:1420)Steven G. Kargl2-1/+8
2018-03-20 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85001 * interface.c (symbol_rank): Remove bogus null pointer check that crept in when translating a ternary operator into an if-else constructor. 2018-03-20 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85001 * gfortran.dg/interface_41.f90: New test. From-SVN: r258698
2018-03-19re PR fortran/84931 (Expansion of array constructor with constant ↵Thomas Koenig2-12/+24
implied-do-object goes sideways) 2018-03-19 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84931 * simplify.c (gfc_convert_constant): Correctly handle iterators for type conversion. 2018-03-19 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84931 * gfortran.dg/array_constructor_52.f90: New test. From-SVN: r258641
2018-03-18re PR fortran/77414 (ICE in create_function_arglist, at ↵Steven G. Kargl2-9/+24
fortran/trans-decl.c:2410) 2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/77414 * decl.c (get_proc_name): Check for a subroutine re-defined in the contain portion of a subroutine. Change language of existing error message to better describe the issue. While here fix whitespace issues. 2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/77414 * gfortran.dg/pr77414.f90: New test. * gfortran.dg/internal_references_1.f90: Adjust error message. From-SVN: r258633
2018-03-18re PR fortran/65453 (ICE in build_function_decl, at fortran/trans-decl.c:2001)Steven G. Kargl2-0/+12
2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/65453 * decl.c (get_proc_name): Catch clash between a procedure statement and a contained subprogram 2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/65453 * gfortran.dg/pr65453.f90: New test. From-SVN: r258632
2018-03-16re PR fortran/69395 (ICE on declaring array with more than 7 ↵Steven G. Kargl2-1/+6
dimensions+codimensions) 2018-03-16 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/69395 * decl.c (merge_array_spec): Correct the error condition. 2018-03-16 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/69395 * gfortran.dg/pr69395.f90: Add test for max dimensions From-SVN: r258607
2018-03-16re PR fortran/78741 (ICE in gfc_get_symbol_decl, at fortran/trans-decl.c:1534)Steven G. Kargl2-1/+12
2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78741 * decl.c (get_proc_name): Check for clash of entry name with subroutine name. 2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78741 * gfortran.dg/pr78741.f90: New test. From-SVN: r258581
2018-03-16re PR fortran/69395 (ICE on declaring array with more than 7 ↵Steven G. Kargl2-7/+33
dimensions+codimensions) 2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/69395 * decl.c (merge_array_spec): Limit the merging to maximum allowed dimensions, and issue error message if limit is exceeded. 2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/69395 * gfortran.dg/pr69395.f90: New test. From-SVN: r258580
2018-03-14check.c (gfc_check_kill_sub): Remove check for INTEGER(4) or (8).Steven G. Kargl8-55/+129
2018-03-13 Steven G. Kargl <kargl@gcc.gnu.org> * check.c (gfc_check_kill_sub): Remove check for INTEGER(4) or (8). * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill. (add_subroutines): Remove reference to gfc_resolve_kill_sub. * intrinsic.texi: Update documentation. * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove. * trans-decl.c (gfc_build_intrinsic_function_decls): Add gfor_fndecl_kill and gfor_fndecl_kill_sub * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new functions. (gfc_conv_intrinsic_function): Use conv_intrinsic_kill. (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub. * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub. 2018-03-13 Steven G. Kargl <kargl@gcc.gnu.org> * libgfortran/gfortran.map: Remove _gfortran_kill_i4, _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub. Add _gfortran_kill and _gfortran_kill_sub. * libgfortran/intrinsics/kill.c: Eliminate _gfortran_kill_i4, _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub. Add _gfortran_kill and _gfortran_kill_sub. From-SVN: r258511
2018-03-11re PR fortran/84546 (Bad sourced allocation of CLASS(*) with source with ↵Paul Thomas4-12/+65
CLASS(*) component) 2018-03-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/84546 * trans-array.c (structure_alloc_comps): Make sure that the vptr is copied and that the unlimited polymorphic _len is used to compute the size to be allocated. * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the unlimited polymorphic _len for the offset to the element. (gfc_copy_class_to_class): Set the new 'unlimited' argument. * trans.h : Add the boolean 'unlimited' to the prototype. 2018-03-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/84546 * gfortran.dg/unlimited_polymorphic_29.f90 : New test. From-SVN: r258438
2018-03-11re PR fortran/83939 (Constraint C1290 (elemental function cannot be ↵Steven G. Kargl2-0/+19
allocatable) not enforced) 2018-03-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/83939 * resolve.c (resolve_fl_procedure): Enforce F2018:C15100. 2018-03-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/83939 * gfortran.dg/pr83939.f90 From-SVN: r258437
2018-03-11check.c (gfc_check_kill): Check pid and sig are scalar.Steven G. Kargl5-52/+88
2018-03-11 Steven G. Kargl <kargls@gcc.gnu.org> * check.c (gfc_check_kill): Check pid and sig are scalar. (gfc_check_kill_sub): Restrict kind to 4 and 8. * intrinsic.c (add_function): Sort keyword list. Add pid and sig keywords for KILL. Remove redundant *back="back" in favor of the original *bck="back". (add_subroutines): Sort keyword list. Add pid and sig keywords for KILL. * intrinsic.texi: Fix documentation to consistently use pid and sig. * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8. Choose the correct function. (gfc_resolve_rename_sub): Add comment. From-SVN: r258436
2018-03-11re PR fortran/66128 (ICE for some intrinsics with zero sized array parameter)Thomas Koenig2-158/+36
2018-03-11 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/66128 * simplify.c (simplify_transformation): Return default result for empty array argument. (gfc_simplify_all): Remove special-case handling for zerosize. (gfc_simplify_any): Likewise. (gfc_simplify_count): Likewise. (gfc_simplify_iall): Likewise. (gfc_simplify_iany): Likewise. (gfc_simplify_iparity): Likewise. (gfc_simplify_minval): Likewise. (gfc_simplify_maxval): Likewise. (gfc_simplify_norm2): Likewise. (gfc_simplify_product): Likewise. (gfc_simplify_sum): Likewise. 2018-03-11 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/66128 * gfortran.dg/zero_sized_9.f90: New test. From-SVN: r258435
2018-03-10re PR fortran/84734 (Compiling codes with insane array dimensions gives an ↵Steven G. Kargl2-3/+13
ICE after r257971) 2018-03-09 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/84734 * arith.c (check_result, eval_intrinsic): If result overflows, pass the expression up the chain instead of a NULL pointer. 2018-03-09 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/84734 * gfortran.dg/pr84734.f90: New test. From-SVN: r258416
2018-03-08re PR fortran/64124 ([F95] Valid constant expr rejected)Steven G. Kargl2-1/+24
2018-03-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/64124 PR fortran/70409 * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant. 2018-03-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/64124 PR fortran/70409 * gfortran.dg/pr64124.f90: New tests. * gfortran.dg/pr70409.f90: New tests. From-SVN: r258347
2018-03-06re PR fortran/84697 (minloc/maxloc not simplified with zero size)Thomas Koenig4-26/+67
2017-03-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84697 PR fortran/66128 * expr.c (simplify_parameter_variable): If p is a size zero array and not an ARRAY_EXPR insert an empty array constructor and return. * gfortran.h: Add prototype for gfc_is_size_zero_array. * simplify.c (is_size_zero_array): Make non-static and rename into (gfc_is_size_zero_array): Check for parameter arrays of zero size by comparing shape and absence of constructor. (gfc_simplify_all): Use gfc_is_size_zero_array instead of is_size_zero_array. (gfc_simplify_count): Likewise. (gfc_simplify_iall): Likewise. (gfc_simplify_iany): Likewise. (gfc_simplify_iparity): Likewise. (gfc_simplify_minval): Likewise. (gfc_simplify_maxval): Likewise. (gfc_simplify_product): Likewise. (gfc_simplify_sum): Likewise. 2017-03-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84697 PR fortran/66128 * gfortran.dg/minmaxloc_zerosize_1.f90: New test. From-SVN: r258305
2018-03-06re PR fortran/56667 (Syntax error causes misleading message: "Expected ↵Steven G. Kargl2-2/+22
PARAMETER symbol in complex constant") 2018-03-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/56667 * primary.c (match_sym_complex_part): Give the matcher for an implied do-loop a chance to run. 2018-03-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/56667 * gfortran.dg/implied_do_2.f90: New test. * gfortran.dg/coarray_8.f90: Update for new error message. From-SVN: r258281
2018-03-04re PR fortran/71085 (ICE with some intrinsic functions specifying array ↵Harald Anlauf2-0/+8
function result dimension) 2018-03-03 Harald Anlauf <anlauf@gmx.de> PR fortran/71085 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not dereference NULL pointer. 2018-03-03 Harald Anlauf <anlauf@gmx.de> PR fortran/71085 * gfortran.dg/pr71085.f90: New test. From-SVN: r258228
2018-03-03re PR fortran/66128 (ICE for some intrinsics with zero sized array parameter)Steven G. Kargl2-0/+191
2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/66128 * simplify.c (is_size_zero_array): New function to check for size zero array. (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count, gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity, gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2, gfc_simplify_product, gfc_simplify_sum): Use it, and implement requirements from F2018. 2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/66128 * gfortran.dg/zero_sized_8.f90: New test. From-SVN: r258223
2018-03-03re PR fortran/51434 (ICE with scalar init of an array parameter, used in DT ↵Steven G. Kargl2-3/+11
default init with transfer) 2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/51434 * simplify.c (gfc_simplify_transfer): Resolve mold. 2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/51434 * gfortran.dg/pr51434.f90: New test. From-SVN: r258220