1. 11 Aug, 2017 8 commits
  2. 10 Aug, 2017 22 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
    • options.c (set_dec_flags, [...]): Only set flag_d_lines with -fdec when not set by user. · 57e1270f
      2017-08-10  Fritz Reese <Reese-Fritz@zai.com>
      
          gcc/fortran/ChangeLog:
      
      	* options.c (set_dec_flags, gfc_post_options): Only set flag_d_lines
      	with -fdec when not set by user.
      
          gcc/testsuite/ChangeLog:
      
          gfortran.dg/
      	* dec_d_lines_1.f, dec_d_lines_2.f: New.
      
      From-SVN: r251024
      Fritz Reese committed
    • decl.c (attr_seen): New static variable. · 6f855a26
      2017-08-10  Fritz Reese <Reese-Fritz@zai.com>
      
          gcc/fortran/ChangeLog:
      
      	* decl.c (attr_seen): New static variable.
      	* decl.c (variable_decl): Match %FILL in STRUCTURE body.
      	* gfortran.texi: Update documentation.
      
          gcc/testsuite/ChangeLog:
      
          gfortran.dg/
      	* dec_structure_18.f90, dec_structure_19.f90, dec_structure_20.f90,
      	dec_structure_21.f90: New.
      
      From-SVN: r251023
      Fritz Reese committed
    • re PR testsuite/81784 (gcc.dg/compare2.c fails starting with r250984) · aaab59b4
      	PR testsuite/81784
      	* gcc.dg/compare2.c: Update dg-bogus and dg-warning.
      
      From-SVN: r251021
      Marek Polacek committed
    • Fix target attribute handling (PR c++/81355). · 2b7d0696
      2017-08-10  Martin Liska  <mliska@suse.cz>
      
      	PR c++/81355
      	* c-attribs.c (handle_target_attribute):
      	Report warning for an empty string argument of target attribute.
      2017-08-10  Martin Liska  <mliska@suse.cz>
      
      	PR c++/81355
      	* g++.dg/other/pr81355.C: New test.
      
      From-SVN: r251020
      Martin Liska committed
    • re PR c/81687 (Compiler drops label in OpenMP region) · 50aa16c3
      	PR c/81687
      	* omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
      	LABEL_DECLs.
      	* tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
      	or DECL_NONLOCAL labels.
      	(move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
      	or DECL_NONLOCAL labels here.
      
      	* testsuite/libgomp.c/pr81687-1.c: New test.
      	* testsuite/libgomp.c/pr81687-2.c: New test.
      
      From-SVN: r251019
      Jakub Jelinek committed
    • jit: add gcc_jit_type_get_vector · 47ee1b7c
      gcc/jit/ChangeLog:
      	* docs/cp/topics/types.rst (Vector types): New section.
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_8): New tag.
      	* docs/topics/types.rst (gcc_jit_context_get_type): Fix typo in
      	example.
      	(Vector types): New section.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-playback.c (gcc::jit::playback::type::get_vector): New
      	method.
      	* jit-playback.h (gcc::jit::playback::type::get_vector): New
      	method.
      	* jit-recording.c: In namespace gcc::jit::recording::
      	(type::get_vector): New method.
      	(memento_of_get_aligned::write_reproducer): Fix typo
      	in leading comment.
      	(memento_of_get_vector::replay_into): New method.
      	(memento_of_get_vector::make_debug_string): New method.
      	(memento_of_get_vector::write_reproducer): New method.
      	* jit-recording.h: In namespace gcc::jit::recording::
      	(type::get_vector): New
      	 method.
      	(class memento_of_get_vector): New class.
      	* libgccjit++.h (gccjit::type::get_vector): New method.
      	* libgccjit.c (gcc_jit_type_get_vector): New public entrypoint.
      	* libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_type_get_vector): New
      	define.
      	(gcc_jit_type_get_vector): New decl.
      	* libgccjit.map (LIBGCCJIT_ABI_8): New ABI tag.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/all-non-failing-tests.h: Add note about
      	test-vector-types.cc.
      	* jit.dg/test-error-gcc_jit_type_get_vector-bad-type.c: New test
      	case.
      	* jit.dg/test-error-gcc_jit_type_get_vector-non-power-of-two.c:
      	New test case.
      	* jit.dg/test-vector-types.cc: New test case.
      
      From-SVN: r251018
      David Malcolm committed
    • Daily bump. · b240c0e0
      From-SVN: r251017
      GCC Administrator committed
    • vect-xorsign_exec.c: Add --save-temps to the options passed. · b388427b
      2017-08-09  Andrew Pinski  <apinski@cavium.com>
      
              * gcc.target/aarch64/vect-xorsign_exec.c: Add
              --save-temps to the options passed.
      
      From-SVN: r251013
      Andrew Pinski committed
  3. 09 Aug, 2017 10 commits