]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2010-05-20 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 May 2010 07:49:26 +0000 (07:49 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 May 2010 07:49:26 +0000 (07:49 +0000)
        * options.c (gfc_init_options,gfc_post_options): Enable
        flag_associative_math by default.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159620 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/options.c

index a1bc38eff840fb85835a95d261f29d4cf6ec551f..18f52859a05c746300017eb4fa5a3dfcd464483d 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-20  Tobias Burnus  <burnus@net-b.de>
+
+       * options.c (gfc_init_options,gfc_post_options): Enable
+       flag_associative_math by default.
+
 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
 
        PR fortran/43851
 
 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
 
-        PR fortran/35779
+       PR fortran/35779
        * array.c (match_array_list): Revert change from 2010-05-13.
 
 2010-05-16  Richard Guenther  <rguenther@suse.de>
 
 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
 
-        PR fortran/35779
-        * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
-        Updated all usages.
-        * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
-        * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
-        iterators.
+       PR fortran/35779
+       * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
+       Updated all usages.
+       * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
+       * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
+       iterators.
 
 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
 
 
 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
 
-        PR fortran/43711
-        * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
-        after OMP statement.
-        (gfc_match_omp_critical): Likewise.
-        (gfc_match_omp_flush): Likewise.
-        (gfc_match_omp_workshare): Likewise.
-        (gfc_match_omp_master): Likewise.
-        (gfc_match_omp_ordered): Likewise.
-        (gfc_match_omp_atomic): Likewise.
-        (gfc_match_omp_barrier): Likewise.
-        (gfc_match_omp_end_nowait): Likewise.
+       PR fortran/43711
+       * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
+       after OMP statement.
+       (gfc_match_omp_critical): Likewise.
+       (gfc_match_omp_flush): Likewise.
+       (gfc_match_omp_workshare): Likewise.
+       (gfc_match_omp_master): Likewise.
+       (gfc_match_omp_ordered): Likewise.
+       (gfc_match_omp_atomic): Likewise.
+       (gfc_match_omp_barrier): Likewise.
+       (gfc_match_omp_end_nowait): Likewise.
 
 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
 
 
        PR fortran/40728
        * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
-        as external
+       as external.
 
 2010-05-07  Jason Merrill  <jason@redhat.com>
 
 
 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
 
-        * gfortran.h (gfc_get_null_expr): New prototype.
-        (gfc_get_operator_expr): New prototype.
-        (gfc_get_character_expr): New prototype.
-        (gfc_get_iokind_expr): New prototype.
-        * expr.c (gfc_get_null_expr): New.
-        (gfc_get_character_expr): New.
-        (gfc_get_iokind_expr): New.
-        (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
-        * matchexp.c (build_node): Renamed and moved to
-        expr.c (gfc_get_operator_expr). Reordered arguments to match 
-        other functions. Fixed all callers.
-        (gfc_get_parentheses): Use specific function to build expr.
-        * array.c (gfc_match_array_constructor): Likewise.
-        * arith.c (eval_intrinsic): Likewise.
-        (gfc_hollerith2int): Likewise.
-        (gfc_hollerith2real): Likewise.
-        (gfc_hollerith2complex): Likewise.
-        (gfc_hollerith2logical): Likewise.
-        * data.c (create_character_intializer): Likewise.
-        * decl.c (gfc_match_null): Likewise.
-        (enum_initializer): Likewise.
-        * io.c (gfc_match_format): Likewise.
-        (match_io): Likewise.
-        * match.c (gfc_match_nullify): Likewise.
-        * primary.c (match_string_constant): Likewise.
-        (match_logical_constant): Likewise.
-        (build_actual_constructor): Likewise.
-        * resolve.c (build_default_init_expr): Likewise.
-        * symbol.c (generate_isocbinding_symbol): Likewise.
-        (gfc_build_class_symbol): Likewise.
-        (gfc_find_derived_vtab): Likewise.
-        * simplify.c (simplify_achar_char): Likewise.
-        (gfc_simplify_adjustl): Likewise.
-        (gfc_simplify_adjustr): Likewise.
-        (gfc_simplify_and): Likewise.
-        (gfc_simplify_bit_size): Likewise.
-        (gfc_simplify_is_iostat_end): Likewise.
-        (gfc_simplify_is_iostat_eor): Likewise.
-        (gfc_simplify_isnan): Likewise.
-        (simplify_bound): Likewise.
-        (gfc_simplify_leadz): Likewise.
-        (gfc_simplify_len_trim): Likewise.
-        (gfc_simplify_logical): Likewise.
-        (gfc_simplify_maxexponent): Likewise.
-        (gfc_simplify_minexponent): Likewise.
-        (gfc_simplify_new_line): Likewise.
-        (gfc_simplify_null): Likewise.
-        (gfc_simplify_or): Likewise.
-        (gfc_simplify_precision): Likewise.
-        (gfc_simplify_repeat): Likewise.
-        (gfc_simplify_scan): Likewise.
-        (gfc_simplify_size): Likewise.
-        (gfc_simplify_trailz): Likewise.
-        (gfc_simplify_trim): Likewise.
-        (gfc_simplify_verify): Likewise.
-        (gfc_simplify_xor): Likewise.
-        * trans-io.c (build_dt): Likewise.
-        (gfc_new_nml_name_expr): Removed.
+       * gfortran.h (gfc_get_null_expr): New prototype.
+       (gfc_get_operator_expr): New prototype.
+       (gfc_get_character_expr): New prototype.
+       (gfc_get_iokind_expr): New prototype.
+       * expr.c (gfc_get_null_expr): New.
+       (gfc_get_character_expr): New.
+       (gfc_get_iokind_expr): New.
+       (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
+       * matchexp.c (build_node): Renamed and moved to
+       expr.c (gfc_get_operator_expr). Reordered arguments to match 
+       other functions. Fixed all callers.
+       (gfc_get_parentheses): Use specific function to build expr.
+       * array.c (gfc_match_array_constructor): Likewise.
+       * arith.c (eval_intrinsic): Likewise.
+       (gfc_hollerith2int): Likewise.
+       (gfc_hollerith2real): Likewise.
+       (gfc_hollerith2complex): Likewise.
+       (gfc_hollerith2logical): Likewise.
+       * data.c (create_character_intializer): Likewise.
+       * decl.c (gfc_match_null): Likewise.
+       (enum_initializer): Likewise.
+       * io.c (gfc_match_format): Likewise.
+       (match_io): Likewise.
+       * match.c (gfc_match_nullify): Likewise.
+       * primary.c (match_string_constant): Likewise.
+       (match_logical_constant): Likewise.
+       (build_actual_constructor): Likewise.
+       * resolve.c (build_default_init_expr): Likewise.
+       * symbol.c (generate_isocbinding_symbol): Likewise.
+       (gfc_build_class_symbol): Likewise.
+       (gfc_find_derived_vtab): Likewise.
+       * simplify.c (simplify_achar_char): Likewise.
+       (gfc_simplify_adjustl): Likewise.
+       (gfc_simplify_adjustr): Likewise.
+       (gfc_simplify_and): Likewise.
+       (gfc_simplify_bit_size): Likewise.
+       (gfc_simplify_is_iostat_end): Likewise.
+       (gfc_simplify_is_iostat_eor): Likewise.
+       (gfc_simplify_isnan): Likewise.
+       (simplify_bound): Likewise.
+       (gfc_simplify_leadz): Likewise.
+       (gfc_simplify_len_trim): Likewise.
+       (gfc_simplify_logical): Likewise.
+       (gfc_simplify_maxexponent): Likewise.
+       (gfc_simplify_minexponent): Likewise.
+       (gfc_simplify_new_line): Likewise.
+       (gfc_simplify_null): Likewise.
+       (gfc_simplify_or): Likewise.
+       (gfc_simplify_precision): Likewise.
+       (gfc_simplify_repeat): Likewise.
+       (gfc_simplify_scan): Likewise.
+       (gfc_simplify_size): Likewise.
+       (gfc_simplify_trailz): Likewise.
+       (gfc_simplify_trim): Likewise.
+       (gfc_simplify_verify): Likewise.
+       (gfc_simplify_xor): Likewise.
+       * trans-io.c (build_dt): Likewise.
+       (gfc_new_nml_name_expr): Removed.
 
 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
 
 
 2010-03-18  Paul Thomas  <pault@gcc.gnu.org>
 
-        PR fortran/43039
-        * trans-expr.c (conv_parent_component_references): Ensure that
+       PR fortran/43039
+       * trans-expr.c (conv_parent_component_references): Ensure that
        'dt' has a backend_decl.
 
-        PR fortran/43043
-        * trans-expr.c (gfc_conv_structure): Ensure that the derived
+       PR fortran/43043
+       * trans-expr.c (gfc_conv_structure): Ensure that the derived
        type has a backend_decl.
 
-        PR fortran/43044
-        * resolve.c (resolve_global_procedure): Check that the 'cl'
+       PR fortran/43044
+       * resolve.c (resolve_global_procedure): Check that the 'cl'
        structure is not NULL.
 
 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
        and DECL_SIZE when encountering a larger common block and call
        layout_decl.
 
-2010-02-24  Tobias Burnus  <burnus@net-b.de>              
+2010-02-24  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/43042
        * trans-expr.c (gfc_conv_initializer): Call directly
-       gfc_conv_constant for C_NULL_(FUN)PTR.              
+       gfc_conv_constant for C_NULL_(FUN)PTR.
 
 2010-02-22  Paul Thomas  <pault@gcc.gnu.org>
 
 
 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
 
-        PR fortran/41478
-        * trans-array.c (duplicate_allocatable):  Static version of
+       PR fortran/41478
+       * trans-array.c (duplicate_allocatable):  Static version of
        gfc_duplicate_allocatable with provision to handle scalar
        components. New boolean argument to switch off call to malloc
        if true.
        use associated but not generic is given an interface that
        includes itself, then make it generic.
 
-2010-01-11  Joseph Myers  <joseph@codesourcery.com>  
+2010-01-11  Joseph Myers  <joseph@codesourcery.com>
            Shujing Zhao  <pearly.zhao@oracle.com>
 
        PR translation/42469
index 320dc722b2c04bb487d0332824a33b45e59f88fb..365b326702eef151406f3e02a44a569f38d91017 100644 (file)
@@ -134,6 +134,7 @@ gfc_init_options (unsigned int argc, const char **argv)
   gfc_option.coarray = GFC_FCOARRAY_NONE;
 
   flag_errno_math = 0;
+  flag_associative_math = -1;
 
   set_default_std_flags ();
 
@@ -247,6 +248,11 @@ gfc_post_options (const char **pfilename)
   if (flag_lto || flag_whopr)
     gfc_option.flag_whole_file = 1;
 
+  /* Fortran allows associative math - but we cannot reassociate if
+     we want traps or signed zeros. Cf. also flag_protect_parens.  */
+  if (flag_associative_math == -1)
+    flag_associative_math = (!flag_trapping_math && !flag_signed_zeros);
+
   /* -fbounds-check is equivalent to -fcheck=bounds */
   if (flag_bounds_check)
     gfc_option.rtcheck |= GFC_RTCHECK_BOUNDS;