1. 14 Aug, 2017 5 commits
  2. 13 Aug, 2017 5 commits
    • i386: Replace frame pointer with stack pointer in debug insns · 15879ef7
      When we eliminate frame pointer, we should also replace frame pointer
      with stack pointer - UNITS_PER_WORD in debug insns.  This patch fixed:
      
      FAIL: gcc.dg/guality/pr58791-5.c   -Os  line pr58791-5.c:20 b1 == 9
      FAIL: gcc.dg/guality/pr58791-5.c   -Os  line pr58791-5.c:20 b2 == 73
      FAIL: gcc.dg/guality/pr58791-5.c   -Os  line pr58791-5.c:20 b3 == 585
      FAIL: gcc.dg/guality/pr58791-5.c   -Os  line pr58791-5.c:20 b4 == 4681
      FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:17 s1.f == 5.0
      FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:17 s1.g == 6.0
      FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:17 s2.g == 6.0
      FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:20 s1.f == 5.0
      FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:20 s1.g == 6.0
      FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:20 s2.f == 5.0
      FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:20 s2.g == 6.0
      
      on Linux/i386.
      
      	PR target/81820
      	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
      	frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
      
      From-SVN: r251076
      H.J. Lu committed
    • i386.md (*load_tp_<mode>): Redefine as define_insn_and_split. · cfc72af0
      	* config/i386/i386.md (*load_tp_<mode>): Redefine as
      	define_insn_and_split.  Split to a memory load from 0 in
      	DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
      	using PTR mode iterator.
      	(*load_tp_x32_zext"): Redefine as define_insn_and_split.
      	Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
      	(*add_tp_<mode>): Redefine as define_insn_and_split.
      	Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
      	address space.  Merge with *add_tp_x32 using PTR mode iterator.
      	(*add_tp_x32_zext"): Redefine as define_insn_and_split.
      	Split to an add with a  memory load from 0 in
      	DEFAULT_TLS_SEG_REG address space.
      
      From-SVN: r251075
      Uros Bizjak committed
    • gfortran.texi: Document format of unformatted sequential files. · 04c4bb30
      2017-08-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* gfortran.texi: Document format of unformatted sequential files.
      
      From-SVN: r251074
      Thomas Koenig committed
    • aarch64-option-extensions.def (rdma): Fix feature string to what Linux prints out in /proc/cpuinfo. · e42e4a0d
      2017-08-12  Andrew Pinski  <apinski@cavium.com>
      
              * config/aarch64/aarch64-option-extensions.def (rdma):
              Fix feature string to what Linux prints out in /proc/cpuinfo.
      
      From-SVN: r251073
      Andrew Pinski committed
    • Daily bump. · 5e7f0316
      From-SVN: r251072
      GCC Administrator committed
  3. 12 Aug, 2017 4 commits
    • Require -static support in gcc.dg/pie-static-[12].c (PR testsuite/81793) · 0d9255af
      	PR testsuite/81793
      	* gcc.dg/pie-static-1.c: Require both static and pie support.
      	* gcc.dg/pie-static-2.c: Likewise.
      
      From-SVN: r251067
      Rainer Orth committed
    • [PR79542][Ada] Fix ICE in dwarf2out.c with nested func. inlining · 7a7b545f
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79542 reports an ICE in
      dwarf2out.c for an Ada testcase built with optimization.
      
      This crash happens during the late generation pass because
      add_gnat_descriptive_type cannot find the type DIE corresponding to some
      descriptive type after having tried to generate it. This is because the
      DIE was generated during the early generation pass, but then pruned by
      the type pruning machinery. So why was it pruned?
      
      We are in a situation where we have cloned types (because of inlining,
      IIUC) whose TYPE_NAME have non-null DECL_ABSTRACT_ORIGIN attributes. As
      a consequence:
      
        * In modified_type_die, the "handle C typedef types" part calls
          gen_type_die on the cloned type.
      
        * gen_type_die matches a typedef variant, and then calls gen_decl_die
          on its TYPE_NAME, which will end up calling gen_typedef_die.
      
        * gen_typedef_die checks decl_ultimate_origin for this TYPE_DECL, and
          finds one, so it only adds a DW_AT_abstract_origin attribute to the
          DW_TAG_typedef DIE, but the cloned type itself does not get its own
          DIE.
      
        * Back in modified_type_die, the call to lookup_type_die on the type
          passed to gen_type_die returns NULL.
      
      In the end, whole type trees, i.e. the ones referenced by
      DECL_ABSTRACT_ORIGIN attributes, are never referenced from type pruning
      "roots" and are thus pruned. The descriptive type at stake here is one
      of them, hence the assertion failure.
      
      This patch attemps to fix that with what seems to be the most sensible
      thing to do in my opinion: updating the "handle C typedef types" part in
      modified_type_die to check decl_ultimate_origin before calling
      gen_type_die: if that function returns something not null, then we know
      that gen_type_die/gen_typedef_die will not generate a DIE for the input
      type, so we try to process the ultimate origin instead. It also updates
      in a similar way gen_type_die_with_usage, assert that when
      gen_typedef_die is called on nodes that have an ultimate origin, this
      origin is themselves.
      
      gcc/
      	PR ada/79542
      	* dwarf2out.c (modified_type_die): For C typedef types that have
      	an ultimate origin, process the ultimate origin instead of the
      	input type.
      	(gen_typedef_die): Assert that input DECLs have no ultimate
      	origin.
      	(gen_type_die_with_usage): For typedef variants that have an
      	ultimate origin, just call gen_decl_die on the original DECL.
      	(process_scope_var): Avoid creating DIEs for local typedefs and
      	concrete static variables.
      
      gcc/testsuite/
      
      	PR ada/79542
      	* gnat.dg/debug13.ads, gnat.dg/debug13.adb: New testcase.
      
      From-SVN: r251066
      Pierre-Marie de Rodat committed
    • [RS6000] linux startfile/endfile · ff97dd82
      These need to match the gnu-user.h definitions to support
      --enable-default-pie.  Otherwise we end up linking the wrong startup
      files when defaulting to PIE.
      
      	PR target/81170
      	PR target/81295
      	* config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
      	match gnu-user.h startfile.
      	(ENDFILE_LINUX_SPEC): Similarly.
      
      From-SVN: r251065
      Alan Modra committed
    • Daily bump. · 9567c62e
      From-SVN: r251064
      GCC Administrator committed
  4. 11 Aug, 2017 13 commits
  5. 10 Aug, 2017 13 commits
    • re PR target/81708 (The x86 stack canary location should be customizable) · e1769bdd
      	PR target/81708
      	* config/i386/i386.opt (mstack-protector-guard-symbol=): New option
      	* config/i386/i386.c (ix86_stack_protect_guard): Use
      	ix86_stack_protect_guard_symbol_str to generate varible declaration.
      	* doc/invoke.texi (x86 Options): Document
      	-mstack-protector-guard-symbol= option.
      
      testsuite/ChangeLog:
      
      	PR target/81708
      	* gcc.target/i386/stack-prot-sym.c: New test.
      
      From-SVN: r251040
      Uros Bizjak committed
    • Rename ix86_split_stack_boundary to ix86_split_stack_guard. · f18f6822
      From-SVN: r251039
      Uros Bizjak committed
    • PR81738: Split vect-alias-check-6.c · adc84037
      The second loop in the testcase only vectorises if we can reverse
      a vector and if aligned loads aren't required.
      
      2017-08-10  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/testsuite/
      	PR testsuite/81738
      	* gcc.dg/vect/vect-alias-check-6.c: Move second function to...
      	* gcc.dg/vect/vect-alias-check-7.c: ...this new file.  Require
      	vect_perm and vect_element_align for vectorization.
      
      From-SVN: r251037
      Richard Sandiford committed
    • PR c++/81359 - Unparsed NSDMI error from SFINAE context. · 339922f4
      	* method.c (synthesized_method_walk): Don't diagnose lack of
      	operator delete.
      
      From-SVN: r251036
      Jason Merrill committed
    • PR c++/80452 - Core 1579, implicit move semantics on return/throw · 4ce8c5de
      	* cp-tree.h (LOOKUP_PREFER_RVALUE): Now means that we've already
      	tentatively changed the lvalue to an rvalue.
      	* call.c (reference_binding): Remove LOOKUP_PREFER_RVALUE handling.
      	(build_over_call): If LOOKUP_PREFER_RVALUE, check that the first
      	parameter is an rvalue reference.
      	* except.c (build_throw): Do maybe-rvalue overload resolution twice.
      	* typeck.c (check_return_expr): Likewise.
      
      From-SVN: r251035
      Jason Merrill committed
    • * config/i386/i386.c (ix86_split_stack_boundary): Add comment. · a0a10c6d
      From-SVN: r251033
      Uros Bizjak committed
    • i386-protos.h (ix86_split_stack_boundary): New prototype. · 5e4882f9
      	* config/i386/i386-protos.h (ix86_split_stack_boundary): New prototype.
      	* config/i386/i386.c (ix86_split_stack_boundary): New function.
      	(ix86_xpand_split_stack_prologue): Call ix86_split_stack_boundary.
      	(ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
      	(i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
      	(optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
      	* config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
      	(split_stack_space_check): Call ix86_split_stack_boundary.
      
      From-SVN: r251031
      Uros Bizjak committed
    • print-tree.c (print_node): Print location using the established format %s:%i%i. · 8197ac2f
      
      gcc/ChangeLog:
      
      	* print-tree.c (print_node): Print location using the established
      	format %s:%i%i.
      	Replace spaces with colons.
      	(debug_raw, debug): Ditto.
      
      From-SVN: r251030
      Martin Sebor committed
    • PR c++/81586 - valgrind error in output_buffer_append_r with -Wall · 0a8923fa
      gcc/ChangeLog:
      
      	PR c++/81586
      	* pretty-print.c (pp_format): Correct the handling of %s precision.
      
      From-SVN: r251029
      Martin Sebor committed
    • i386: Don't use frame pointer without stack access · 8e941ae9
      When there is no stack access, there is no need to use frame pointer
      even if -fno-omit-frame-pointer is used and caller's frame pointer is
      unchanged.
      
      gcc/
      
      	PR target/81736
      	* config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
      	to ...
      	(ix86_finalize_stack_frame_flags): This.  Also clear
      	frame_pointer_needed if -fno-omit-frame-pointer is used without
      	stack access.
      	(ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
      	with ix86_finalize_stack_frame_flags.
      	(ix86_expand_epilogue): Likewise.
      	(ix86_expand_split_stack_prologue): Likewise.
      	* doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
      
      gcc/testsuite/
      
      	PR target/81736
      	* gcc.target/i386/pr81736-1.c: New test.
      	* gcc.target/i386/pr81736-2.c: Likewise.
      	* gcc.target/i386/pr81736-3.c: Likewise.
      	* gcc.target/i386/pr81736-4.c: Likewise.
      	* gcc.target/i386/pr81736-5.c: Likewise.
      	* gcc.target/i386/pr81736-6.c: Likewise.
      	* gcc.target/i386/pr81736-7.c: Likewise.
      
      From-SVN: r251028
      H.J. Lu committed
    • fold-vec-msum-short.c: Fix typo. · 798f8628
      [gcc/testsuite]
      
      2017-08-10  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
              * gcc.target/powerpc/fold-vec-msum-short.c: Fix typo.
              * gcc.target/powerpc/fold-vec/pack-longlong.c: Mark for 64-bit only.
      
      From-SVN: r251027
      Will Schmidt committed
    • C/C++: show pertinent open token when missing a close token · 32129a17
      gcc/c/ChangeLog:
      	* c-parser.c (c_parser_error): Rename to...
      	(c_parser_error_richloc): ...this, making static, and adding
      	"richloc" parameter, passing it to the c_parse_error call,
      	rather than calling c_parser_set_source_position_from_token.
      	(c_parser_error): Reintroduce, reimplementing in terms of the
      	above, converting return type from void to bool.
      	(class token_pair): New class.
      	(struct matching_paren_traits): New struct.
      	(matching_parens): New typedef.
      	(struct matching_brace_traits): New struct.
      	(matching_braces): New typedef.
      	(get_matching_symbol): New function.
      	(c_parser_require): Add param MATCHING_LOCATION, using it to
      	highlight matching "opening" tokens for missing "closing" tokens.
      	(c_parser_skip_until_found): Likewise.
      	(c_parser_static_assert_declaration_no_semi): Convert explicit
      	parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
      	class matching_parens, so that the pertinent open parenthesis is
      	highlighted when there are problems locating the close
      	parenthesis.
      	(c_parser_struct_or_union_specifier): Likewise.
      	(c_parser_typeof_specifier): Likewise.
      	(c_parser_alignas_specifier): Likewise.
      	(c_parser_simple_asm_expr): Likewise.
      	(c_parser_braced_init): Likewise, for matching_braces.
      	(c_parser_paren_condition): Likewise, for matching_parens.
      	(c_parser_switch_statement): Likewise.
      	(c_parser_for_statement): Likewise.
      	(c_parser_asm_statement): Likewise.
      	(c_parser_asm_operands): Likewise.
      	(c_parser_cast_expression): Likewise.
      	(c_parser_sizeof_expression): Likewise.
      	(c_parser_alignof_expression): Likewise.
      	(c_parser_generic_selection): Likewise.
      	(c_parser_postfix_expression): Likewise for cases RID_VA_ARG,
      	RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR,
      	RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary.
      	In case CPP_OPEN_PAREN, pass loc_open_paren to the
      	c_parser_skip_until_found call.
      	(c_parser_objc_class_definition): Use class matching_parens as
      	above.
      	(c_parser_objc_method_decl): Likewise.
      	(c_parser_objc_try_catch_finally_statement): Likewise.
      	(c_parser_objc_synchronized_statement): Likewise.
      	(c_parser_objc_at_property_declaration): Likewise.
      	(c_parser_oacc_wait_list): Likewise.
      	(c_parser_omp_var_list_parens): Likewise.
      	(c_parser_omp_clause_collapse): Likewise.
      	(c_parser_omp_clause_default): Likewise.
      	(c_parser_omp_clause_if): Likewise.
      	(c_parser_omp_clause_num_threads): Likewise.
      	(c_parser_omp_clause_num_tasks): Likewise.
      	(c_parser_omp_clause_grainsize): Likewise.
      	(c_parser_omp_clause_priority): Likewise.
      	(c_parser_omp_clause_hint): Likewise.
      	(c_parser_omp_clause_defaultmap): Likewise.
      	(c_parser_oacc_single_int_clause): Likewise.
      	(c_parser_omp_clause_ordered): Likewise.
      	(c_parser_omp_clause_reduction): Likewise.
      	(c_parser_omp_clause_schedule): Likewise.
      	(c_parser_omp_clause_num_teams): Likewise.
      	(c_parser_omp_clause_thread_limit): Likewise.
      	(c_parser_omp_clause_aligned): Likewise.
      	(c_parser_omp_clause_linear): Likewise.
      	(c_parser_omp_clause_safelen): Likewise.
      	(c_parser_omp_clause_simdlen): Likewise.
      	(c_parser_omp_clause_depend): Likewise.
      	(c_parser_omp_clause_map): Likewise.
      	(c_parser_omp_clause_device): Likewise.
      	(c_parser_omp_clause_dist_schedule): Likewise.
      	(c_parser_omp_clause_proc_bind): Likewise.
      	(c_parser_omp_clause_uniform): Likewise.
      	(c_parser_omp_for_loop): Likewise.
      	(c_parser_cilk_clause_vectorlength): Likewise.
      	(c_parser_cilk_clause_linear): Likewise.
      	(c_parser_transaction_expression): Likewise.
      	* c-parser.h (c_parser_require): Add param matching_location with
      	default UNKNOWN_LOCATION.
      	(c_parser_error): Convert return type from void to bool.
      	(c_parser_skip_until_found): Add param matching_location with
      	default UNKNOWN_LOCATION.
      
      gcc/c-family/ChangeLog:
      	* c-common.c (c_parse_error): Add rich_location * param, using it
      	rather implicitly using input_location.
      	* c-common.h (c_parse_error): Add rich_location * param.
      
      gcc/cp/ChangeLog:
      	* parser.c (cp_parser_error): Update for new param to
      	c_parse_error.
      	(class token_pair): New class.
      	(struct matching_paren_traits): New struct.
      	(matching_parens): New typedef.
      	(struct matching_brace_traits): New struct.
      	(matching_braces): New typedef.
      	(cp_parser_statement_expr): Convert explicit parsing of
      	CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
      	class matching_parens, so that the pertinent open parenthesis is
      	highlighted when there are problems locating the close
      	parenthesis.
      	(cp_parser_primary_expression): Likewise.
      	(cp_parser_compound_literal_p): Remove consumption of opening
      	paren.
      	(cp_parser_postfix_expression): Convert explicit parsing of
      	CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use matching parens, as
      	above.  Use it to consume the opening paren previously consumed by
      	cp_parser_compound_literal_p.
      	(cp_parser_parenthesized_expression_list): Likewise.
      	(cp_parser_unary_expression): Likewise.
      	(cp_parser_new_expression): Likewise.
      	(cp_parser_cast_expression): Likewise.
      	(cp_parser_builtin_offsetof): Likewise.
      	(cp_parser_trait_expr): Likewise.
      	(cp_parser_lambda_declarator_opt): Likewise.
      	(cp_parser_lambda_body): Likewise, for matching_braces.
      	(cp_parser_compound_statement): Likewise.
      	(cp_parser_selection_statement): Likewise, for matching_parens.
      	(cp_parser_iteration_statement): Likewise.
      	(cp_parser_already_scoped_statement): Likewise, for
      	matching_braces.
      	(cp_parser_linkage_specification): Likewise.
      	(cp_parser_static_assert): Likewise, for matching_parens.
      	(cp_parser_decltype): Likewise.
      	(cp_parser_operator): Likewise.
      	(cp_parser_enum_specifier): Likewise.
      	(cp_parser_namespace_definition): Likewise.
      	(cp_parser_direct_declarator): Likewise.
      	(cp_parser_braced_list): Likewise.
      	(cp_parser_class_specifier_1): Likewise, for matching_braces.
      	(cp_parser_constant_initializer): Likewise.
      	(cp_parser_noexcept_specification_opt): Likewise, for
      	matching_parens.
      	(cp_parser_exception_specification_opt): Likewise.
      	(cp_parser_handler): Likewise.
      	(cp_parser_asm_specification_opt): Likewise.
      	(cp_parser_asm_operand_list): Likewise.
      	(cp_parser_gnu_attributes_opt): Likewise.
      	(cp_parser_std_attribute_spec): Likewise.
      	(cp_parser_requirement_parameter_list): Likewise.
      	(cp_parser_requirement_body): Likewise, for matching_braces.
      	(cp_parser_compound_requirement): Likewise.
      	(cp_parser_template_introduction): Likewise.
      	(cp_parser_sizeof_pack): Likewise, for matching_parens.
      	(cp_parser_sizeof_operand): Likewise; use it to consume the
      	opening paren previously consumed by cp_parser_compound_literal_p.
      	(get_matching_symbol): New function.
      	(cp_parser_required_error): Add param "matching_location".  Remove
      	calls to cp_parser_error, instead setting a non-NULL gmsgid, and
      	handling it if set by calling c_parse_error, potentially with a
      	secondary location if matching_location was set.
      	(cp_parser_require): Add param "matching_location", with a default
      	value of UNKNOWN_LOCATION.
      	(cp_parser_require_keyword): Update for new param of
      	cp_parser_required_error.
      	(cp_parser_objc_encode_expression): Update to class matching_parens
      	as above.
      	(cp_parser_objc_defs_expression): Likewise.
      	(cp_parser_objc_protocol_expression): Likewise.
      	(cp_parser_objc_selector_expression): Likewise.
      	(cp_parser_objc_typename): Likewise.
      	(cp_parser_objc_superclass_or_category): Likewise.
      	(cp_parser_objc_try_catch_finally_statement): Likewise.
      	(cp_parser_objc_synchronized_statement): Likewise.
      	(cp_parser_objc_at_property_declaration): Likewise.
      	(cp_parser_oacc_single_int_clause): Likewise.
      	(cp_parser_oacc_shape_clause): Likewise.
      	(cp_parser_omp_clause_collapse): Likewise.
      	(cp_parser_omp_clause_default): Likewise.
      	(cp_parser_omp_clause_final): Likewise.
      	(cp_parser_omp_clause_if): Likewise.
      	(cp_parser_omp_clause_num_threads): Likewise.
      	(cp_parser_omp_clause_num_tasks): Likewise.
      	(cp_parser_omp_clause_grainsize): Likewise.
      	(cp_parser_omp_clause_priority): Likewise.
      	(cp_parser_omp_clause_hint): Likewise.
      	(cp_parser_omp_clause_defaultmap): Likewise.
      	(cp_parser_omp_clause_ordered): Likewise.
      	(cp_parser_omp_clause_schedule): Likewise.
      	(cp_parser_omp_clause_num_teams): Likewise.
      	(cp_parser_omp_clause_thread_limit): Likewise.
      	(cp_parser_omp_clause_aligned): Likewise.
      	(cp_parser_omp_clause_linear): Likewise.
      	(cp_parser_omp_clause_safelen): Likewise.
      	(cp_parser_omp_clause_simdlen): Likewise.
      	(cp_parser_omp_clause_depend): Likewise.
      	(cp_parser_omp_clause_device): Likewise.
      	(cp_parser_omp_clause_dist_schedule): Likewise.
      	(cp_parser_oacc_clause_async): Likewise.
      	(cp_parser_omp_critical): Likewise.
      	(cp_parser_omp_for_loop): Likewise.
      	(cp_parser_omp_sections_scope): Likewise.
      	(cp_parser_omp_declare_reduction_exprs): Likewise.
      	Update for new param to cp_parser_required_error.
      	(cp_parser_oacc_routine): Likewise.
      	(cp_parser_transaction_expression): Likewise.
      	(cp_parser_cilk_simd_vectorlength): Likewise.
      
      gcc/testsuite/ChangeLog:
      	* c-c++-common/missing-close-symbol.c: New test case.
      	* c-c++-common/missing-symbol.c: New test case.
      	* gcc.dg/unclosed-init.c: New test case.
      	* g++.dg/diagnostic/unclosed-extern-c.C: New test case.
      	* g++.dg/diagnostic/unclosed-function.C: New test case.
      	* g++.dg/diagnostic/unclosed-namespace.C: New test case.
      	* g++.dg/diagnostic/unclosed-struct.C: New test case.
      	* g++.dg/parse/pragma2.C: Update to reflect movement of the
      	"expected identifier" error.
      
      From-SVN: r251026
      David Malcolm committed
    • options.c (set_dec_flags): Only set legacy standards when value is not zero. · 7c23ac0d
      2017-08-10  Fritz Reese <fritzoreese@gmail.com>
      
          gcc/fortran/ChangeLog:
      
      	* options.c (set_dec_flags): Only set legacy standards when value
      	is not zero.
      
      From-SVN: r251025
      Fritz Reese committed