OSDN Git Service

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 a1bc38e..18f5285 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 320dc72..365b326 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;