1. 25 Oct, 2016 13 commits
    • go-lang.c: remove a redundant cast · 4b3aaca6
      gcc/go/ChangeLog:
      	* go-lang.c (go_langhook_type_for_mode): Remove redundant cast
      	from result of GET_MODE_CLASS.  Minor formatting fixes.
      
      From-SVN: r241514
      David Malcolm committed
    • v850.c (v850_handle_data_area_attribute): Fix fallthru comment. · d5356522
      	* config/v850/v850.c (v850_handle_data_area_attribute): Fix fallthru
      	comment.
      	(v850_output_aligned_bss): Add missing break.
      
      From-SVN: r241513
      Jeff Law committed
    • Fix not caught use-after-scope with -O1 (PR sanitize/78106) · 8e104951
      	PR sanitizer/78106
      	* sanopt.c (imm_dom_path_with_freeing_call): Handle gasm
      	statements as they can also contain possibly a freeing call.
      	PR sanitizer/78106
      	* gcc.dg/asan/pr78106.c: New test.
      
      From-SVN: r241511
      Martin Liska committed
    • Fix 2 typos in IPA ICF pass · b93ee1bb
      	* gcc.dg/ipa/ipa-icf-32.c: Removed one scanned pattern.
      	    Martin Liska  <mliska@suse.cz>
      
      	PR ipa/78099
      	* common.opt: Mark flag_ipa_icf_variables as Optimization flag.
      	* ipa-icf.c (sem_function::get_hash): Add target optimization
      	node to hash.
      
      From-SVN: r241510
      Martin Liska committed
    • With -fpu=neon DI mode shifts are expanded after reload. · ad6922b0
      With -fpu=neon DI mode shifts are expanded after reload.  DI mode registers can 
      either fully or partially overlap on both ARM and Thumb-2.  However the shift
      expansion code can only deal with the full overlap case, and generates incorrect
      code for partial overlaps.  The fix is to add new variants that support either
      full overlap or no overlap.
      
          gcc/
      	PR target/78041
      	* config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
      	Remove partial overlap check for shift by 1.
      	(ashldi3_neon): Likewise.
          testsuite/
      	* gcc.target/arm/pr78041.c: New test.
      
      From-SVN: r241508
      Wilco Dijkstra committed
    • constraints.md (Q constraint): Document its use for Thumb-1. · 84c20253
      2016-10-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/constraints.md (Q constraint): Document its use for
          Thumb-1.
          (Pf constraint): New constraint for relaxed, consume or relaxed memory
          models.
          * config/arm/sync.md (atomic_load<mode>): Add new ARMv8-M Baseline only
          alternatives to allow any register when memory model matches Pf and
          thus lda is used, but only low registers otherwise.  Use unpredicated
          output template for Thumb-1 targets.
          (atomic_store<mode>): Likewise for stl.
          (arm_load_exclusive<mode>): Add new ARMv8-M Baseline only alternative
          whose output template does not have predication.
          (arm_load_acquire_exclusive<mode>): Likewise.
          (arm_load_exclusivesi): Likewise.
          (arm_load_acquire_exclusivesi): Likewise.
          (arm_store_release_exclusive<mode>): Likewise.
          (arm_store_exclusive<mode>): Use unpredicated output template for
          Thumb-1 targets.
      
      From-SVN: r241507
      Thomas Preud'homme committed
    • internal-fn.def (LAUNDER): New internal function. · e16f1cc7
      	* internal-fn.def (LAUNDER): New internal function.
      	* internal-fn.c (expand_LAUNDER): New function.
      c-family/
      	* c-common.h (enum rid): Add RID_BUILTIN_LAUNDER.
      	* c-common.c (c_common_reswords): Add __builtin_launder.
      cp/
      	* cp-tree.h (finish_builtin_launder): Declare.
      	* parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_LAUNDER.
      	* semantics.c (finish_builtin_launder): New function.
      	* pt.c (tsubst_copy_and_build): Handle instantiation of IFN_LAUNDER.
      	* constexpr.c (cxx_eval_internal_function): Handle IFN_LAUNDER.
      	(potential_constant_expression_1): Likewise.
      testsuite/
      	* g++.dg/cpp1z/launder1.C: New test.
      	* g++.dg/cpp1z/launder2.C: New test.
      
      From-SVN: r241506
      Jakub Jelinek committed
    • Typo. · 080c5459
      From-SVN: r241505
      Georg-Johann Lay committed
    • New avt target pass to work around performance loss by PR fix. · 078134e5
      gcc/
      	New avt target pass to work around performance loss by PR fix.
      	PR target/71676
      	PR target/71678
      	* config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn.
      	(*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3.
      	* config/avr/predicates.md (extend_operator): New.
      	* config/avr/avr-passes.def (avr_pass_casesi): Register new pass.
      	* config/avr/avr-protos.h (avr_casei_sequence_check_operands)
      	(make_avr_pass_casesi): New prototypes.
      	* config/avr/avr.c (print-rtl.h): Include it.
      	(pass_data avr_pass_data_casesi): Data for new pass.
      	(avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi.
      	(make_avr_pass_casesi, avr_parallel_insn_from_insns)
      	(avr_is_casesi_sequence, avr_casei_sequence_check_operands)
      	(avr_optimize_casesi): New functions.
      gcc/testsuite/
      	PR target/71676
      	PR target/71678
      	* gcc.target/avr/pr71676-2.c: New test.
      
      From-SVN: r241504
      Georg-Johann Lay committed
    • re PR target/71676 ([avr] casesi won't handle switch values larger than 16 bits) · c7212a15
      gcc/
      	PR target/71676
      	PR target/71678
      	* config/avr/avr.md (casesi): Rewrite avoiding subregs of SI.
      gcc/testsuite/
      	PR target/71676
      	PR target/71678
      	* gcc.target/avr/pr71676-1.c: New test.
      	* gcc.target/avr/pr71676-3.c: New test.
      	* gcc.target/avr/pr71676.c: New test.
      	* gcc.target/avr/pr71678.c: New test.
      
      Co-Authored-By: Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
      
      From-SVN: r241503
      Georg-Johann Lay committed
    • Daily bump. · 7330750c
      From-SVN: r241502
      GCC Administrator committed
  2. 24 Oct, 2016 27 commits
    • test_frame_common.h: Add noclone attribute such that cloned verions of tested… · d1c7d3a8
      test_frame_common.h: Add noclone attribute such that cloned verions of tested functions are not created.
      
      gcc/testsuite/ChangeLog:
      
      2016-10-24  Kugan Vivekanandarajah  <kuganvi@linaro.org>
      
      	* gcc.target/aarch64/test_frame_common.h: Add noclone attribute
      	such that cloned verions of tested functions are not created.
      
      From-SVN: r241499
      Kugan Vivekanandarajah committed
    • re PR libfortran/77828 (Linking gfortran-7 compiled program with libgfortran of… · 13926b24
      re PR libfortran/77828 (Linking gfortran-7 compiled program with libgfortran of 5.x allowed but crashes when containing write to string)
      
      2016-10-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/77828
      	* io/io.h (st_parameter_dt): Reorder for readability and sanity.
      	* io/transfer.c (data_transfer_init): Remove TODO and enable the
      	runtime error message, rec= specifier not allowed in STREAM
      	access.
      	* libtool-version: Bump major version of libgfortran to 4.
      
      	* ioparm.def: Reorder dt parameters to match libgfortran.
      	* libgfortran.h: Swap definitions of GFC_INTERNAL_UNIT and
      	GFC_INTERNAL_UNIT4.
      
      From-SVN: r241497
      Jerry DeLisle committed
    • re PR fortran/71895 (ICE in gfc_compare_derived_types, at fortran/interface.c:520) · c7082171
      2016-10-24  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/71895
      	* interface.c (gfc_compare_derived_types):  Convert gcc_assert()
      	to a gfc_internal_error() to prevent an ICE.
      
      2016-10-24  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/71895
      	* gfortran.dg/pr71895.f90: New test.
      
      From-SVN: r241493
      Steven G. Kargl committed
    • dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or DW_AT_rvalue_reference attributes. · 0f2a9e37
      	* dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or
      	DW_AT_rvalue_reference attributes.
      
      	* cp-objcp-common.c (cp_decl_dwarf_attribute): Handle DW_AT_reference
      	and DW_AT_rvalue_reference.
      
      	* g++.dg/debug/dwarf2/ref-2.C: New test.
      
      From-SVN: r241492
      Jakub Jelinek committed
    • PR libgcc/78064: Add missing include directive to unwind-c.c · 33107571
      	PR libgcc/78064
      	* unwind-c.c: Include auto-target.h.
      
      From-SVN: r241491
      Florian Weimer committed
    • c-common.c (c_common_truthvalue_conversion): Warn for multiplications in boolean context. · f8348061
      2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c-common.c (c_common_truthvalue_conversion): Warn for
              multiplications in boolean context.  Fix the quoting of '<<' and '<'
              in the shift warning.
      
      gcc:
      2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * doc/invoke.text (Wint-in-bool-context): Update documentation.
              * value-prof.c (stringop_block_profile): Fix a warning.
      
      testsuite:
      2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c-c++-common/Wint-in-bool-context-3.c: New test.
      
      From-SVN: r241490
      Bernd Edlinger committed
    • PR middle-end/77735 - FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-1.c · 1eb4547b
      gcc/ChangeLog:
      
      	PR middle-end/77735
      	* builtins.c (string_length): New function.
      	(c_strlen): Use string_length.  Correctly handle wide strings.
      	* gimple-ssa-sprintf.c (target_max_value, target_size_max): New
      	functions.
      	(target_int_max): Call target_max_value.
      	(format_result::knownrange): New data member.
      	(fmtresult::fmtresult): Define default constructor.
      	(format_integer): Use it and set format_result::knownrange.
      	Handle global constants.
      	(format_floating_max): Add third argument.
      	(format_floating): Recompute maximum value for %a for each argument.
      	(get_string_length): Use fmtresult default ctor.
      	(format_string): Set format_result::knownrange.
      	(format_directive): Check format_result::knownrange.
      	(add_bytes): Same.  Correct caret placement in diagnostics.
      	(pass_sprintf_length::compute_format_length): Set
      	format_result::knownrange.
      	(pass_sprintf_length::handle_gimple_call): Use target_size_max.
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/77735
      	* gcc.dg/tree-ssa/builtin-sprintf-2.c: Add test cases.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Same.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Same.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Adjust/relax.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-4.c: Add test cases.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: XFAIL for LP64 only.
      	* gcc.dg/tree-ssa/builtin-sprintf.c: Add test cases.
      
      From-SVN: r241489
      Martin Sebor committed
    • Fix error handling in filesystem::is_empty · 94caf860
      	* src/filesystem/ops.cc (is_empty): Fix error handling.
      	* testsuite/experimental/filesystem/operations/is_empty.cc: New test.
      
      From-SVN: r241488
      Jonathan Wakely committed
    • PR71337 fix filesystem::temp_directory_path error handling · 6daff2d9
      	PR libstdc++/71337
      	* src/filesystem/ops.cc (temp_directory_path): Pass error_code
      	argument to other filesystem operations.
      	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
      	Add testcase for inaccessible directory.
      
      From-SVN: r241487
      Jonathan Wakely committed
    • Make directory iterators become end iterator on error · bb52a7e3
      	* src/filesystem/dir.cc (open_dir): Return same value for errors
      	whether ignored or not.
      	(_Dir::advance(error_code*, directory_options)): Return false on
      	error.
      	(directory_iterator(const path&, directory_options, error_code*)):
      	Create end iterator on error (LWG 2723).
      	(recursive_directory_iterator(const path&, directory_options,
      	error_code*)): Likewise.
      	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
      	Update expected behaviour on error.
      	* testsuite/experimental/filesystem/iterators/
      	recursive_directory_iterator.cc: Likewise.
      
      From-SVN: r241486
      Jonathan Wakely committed
    • Do not retry failed close(3) in filesystem::copy · cfef9c1e
      	* src/filesystem/ops.cc (close_fd): Remove.
      	(do_copy_file): Just use close(3) instead of close_fd, to prevent
      	retrying on error.
      
      From-SVN: r241485
      Jonathan Wakely committed
    • Implement DR resolutions for filesystem::copy · b3dec9e5
      	* src/filesystem/ops.cc (do_copy_file): Return an error if either
      	source or destination is not a regular file.
      	(copy): Update comment to refer to LWG 2681. Implement 2682 and 2683
      	resolutions.
      	(read_symlink): Add missing ec.clear().
      	* testsuite/experimental/filesystem/operations/copy.cc: Update
      	expected behaviour for copying directories with create_symlinks.
      	Verify that error_code arguments are cleared if there's no error.
      	* testsuite/experimental/filesystem/operations/read_symlink.cc: New.
      
      From-SVN: r241484
      Jonathan Wakely committed
    • download_prerequisites: Conditionally verify checksums of downloaded pacakges. · 38000825
      2016-10-24  Moritz Klammler  <moritz@glammler.eu>
      
      	* download_prerequisites: Conditionally verify checksums of
      	downloaded pacakges.  Add help text.
      	* prerequisites.md5: New file.
      	* prerequisites.sha512: New file.
      
      From-SVN: r241483
      Moritz Klammler committed
    • trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use VAR_P (x) instead of TREE_CODE (x) == VAR_DECL. · d168c883
      	* trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use VAR_P (x)
      	instead of TREE_CODE (x) == VAR_DECL.
      	* trans-expr.c (gfc_class_vptr_get, gfc_class_len_get,
      	gfc_class_len_or_zero_get, gfc_get_vptr_from_expr,
      	gfc_conv_string_length, conv_base_obj_fcn_val,
      	gfc_conv_procedure_call, gfc_trans_assignment_1): Likewise.
      	* trans-openmp.c (gfc_omp_predetermined_sharing,
      	gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause,
      	gfc_trans_omp_atomic, gfc_trans_omp_do): Likewise.
      	* trans-io.c (nml_get_addr_expr): Likewise.
      	* trans-decl.c (gfc_finish_decl, gfc_build_qualified_array,
      	gfc_get_symbol_decl, gfc_get_fake_result_decl,
      	gfc_trans_deferred_vars, gfc_trans_use_stmts,
      	generate_local_decl): Likewise.
      	* trans-array.c (trans_array_constructor, trans_array_bound_check,
      	build_class_array_ref, gfc_array_init_size,
      	gfc_trans_auto_array_allocation, gfc_trans_g77_array,
      	gfc_trans_dummy_array_bias, gfc_alloc_allocatable_for_assignment,
      	gfc_trans_deferred_array): Likewise.
      	* trans.c (gfc_build_array_ref): Likewise.  Use
      	VAR_OR_FUNCTION_DECL_P (x) instead of TREE_CODE (x) == VAR_DECL
      	|| TREE_CODE (x) == FUNCTION_DECL.
      
      From-SVN: r241482
      Jakub Jelinek committed
    • i386.c (ix86_in_large_data_p, [...]): Use VAR_P (x) instead of TREE_CODE (x) == VAR_DECL. · 44670295
      	* config/i386/i386.c (ix86_in_large_data_p, ix86_expand_builtin): Use
      	VAR_P (x) instead of TREE_CODE (x) == VAR_DECL.
      
      From-SVN: r241481
      Jakub Jelinek committed
    • cxx-pretty-print.c (pp_cxx_check_constraint): Use VAR_P (x) instead of TREE_CODE (x) == VAR_DECL. · 86287716
      	* cxx-pretty-print.c (pp_cxx_check_constraint): Use VAR_P (x)
      	instead of TREE_CODE (x) == VAR_DECL.
      	* constraint.cc (get_concept_definition): Likewise.
      	(finish_shorthand_constraint): Likewise.
      	* init.c (warn_placement_new_too_small): Likewise.
      	* cp-gimplify.c (cp_genericize_r): Likewise.
      
      From-SVN: r241480
      Jakub Jelinek committed
    • Cross-port exception-safety and move fixes of std::any to std::experimental::any. · a3f6007c
      Cross-port exception-safety and move fixes of std::any to
      std::experimental::any.
      * include/experimental/any (operator=(const any&)):
      Make strongly exception-safe.
      (operator=(any&&)): clear() unconditionally in the case where
      rhs has a value.
      (_Manager_internal<_Tp>::_S_manage): Move in _Op_xfer, don't copy.
      * testsuite/experimental/any/assign/2.cc: Adjust.
      * testsuite/experimental/any/assign/exception.cc: New.
      * testsuite/experimental/any/cons/2.cc: Adjust.
      * testsuite/experimental/any/misc/any_cast_neg.cc: Ajust.
      
      From-SVN: r241479
      Ville Voutilainen committed
    • re PR testsuite/71491 (gcc.dg/vect/slp-43.c FAILs) · 292af537
      2016-10-24  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/71491
      	* gcc.dg/vect/slp-43.c: Adjust for !vect_hw_misalign.
      	* gcc.dg/vect/slp-45.c: Likewise.
      
      From-SVN: r241478
      Richard Biener committed
    • Cross-port the latest resolution of LWG2756 and some bug-fixes to experimental::optional. · f11cc050
      Cross-port the latest resolution of LWG2756 and some
      bug-fixes to experimental::optional.
      PR libstdc++/77288
      PR libstdc++/77727
      * include/experimental/optional (_Optional_base):
      Remove constructors that take a _Tp.
      (__is_optional_impl, __is_optional): Remove.
      (__converts_from_optional): New.
      (optional(_Up&&)): Fix constraints, call base with in_place.
      (optional(const optional<_Up>&)): Fix constraints, use emplace.
      (optional(optional<_Up>&&)): Likewise.
      (operator=(_Up&&)): Fix constraints.
      (operator=(const optional<_Up>&)): Likewise.
      (operator=(optional<_Up>&&)): Likewise.
      (emplace(_Args&&...)): Constrain.
      (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
      * testsuite/experimental/optional/77288.cc: New.
      * testsuite/experimental/optional/assignment/5.cc: Adjust.
      * testsuite/experimental/optional/cons/77727.cc: New.
      * testsuite/experimental/optional/cons/value.cc: Adjust.
      
      From-SVN: r241476
      Ville Voutilainen committed
    • Make vector::data() return type consistent in C++98 · 405def8d
      	* include/bits/stl_vector.h (vector::_M_data_ptr, vector::data):
      	Change return type of non-standard C++98 extension to match C++11.
      
      From-SVN: r241475
      Jonathan Wakely committed
    • re PR debug/77985 (DW_AT_comp_dir is omitted when filename is absolute and the… · 89cc66c4
      re PR debug/77985 (DW_AT_comp_dir is omitted when filename is absolute and the file does not contain a specific typedef)
      
      2016-10-24  Ximin Luo  <infinity0@pwned.gg>
      
      	PR debug/77985
      	* dwarf2out.c (file_table_relative_p): Remove.
      	(gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir
      	also for absolute paths.
      	* doc/tm.texi: Update.
      	* doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove.
      	* target.def (force_at_comp_dir): Remove hook.
      	* config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define.
      
      From-SVN: r241473
      Ximin Luo committed
    • Remove dead wood from trans-expr.c · c101fad8
      From-SVN: r241472
      Paul Thomas committed
    • [check_GNU_style.sh] More aggressively ignore dg-xxx directives · e77cf8c6
      	* check_GNU_style.sh (remove_testsuite): New function.
      	Use it to remove testsuite from the diff.
      
      From-SVN: r241471
      Kyrylo Tkachov committed
    • tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore backedges when… · 40f683e8
      tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore backedges when identifying the single predecessor to take conditional...
      
      2016-10-24  Richard Biener  <rguenther@suse.de>
      
      	* tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore
      	backedges when identifying the single predecessor to take
      	conditional info from.  Use SCEV to get at ranges for loop IVs.
      	* lto-streamer-out.c (lto_write_mode_table): CSE inner mode to
      	avoid false warning.
      
      	* gcc.dg/tree-ssa/cunroll-13.c: Disable EVRP.
      	* gcc.dg/tree-ssa/pr21458.c: Likewise.
      	* gcc.dg/tree-ssa/pr21458-2.c: New testcase for EVRP.
      
      From-SVN: r241470
      Richard Biener committed
    • Parallelize check-gnat · 6a5792b6
      	* gcc-interface/Make-lang.in (lang_checks_parallelized): New target.
      	(check_gnat_parallelize): Likewise.
      
      From-SVN: r241469
      Rainer Orth committed
    • re PR target/78093 ([avr] New variable attribute "absdata" and option… · b1b6774f
      re PR target/78093 ([avr] New variable attribute "absdata" and option "-mabsdata" to enable LDS / STS on Reduced Tiny)
      
      gcc/
      	PR target/78093
      	* doc/extend.texi (AVR Variable Attributes) [absdata]: Document it.
      	* config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_ABSDATA): New macro.
      	(avr_address_tiny_absdata_p): New static function.
      	(avr_legitimate_address_p, avr_legitimize_address) [AVR_TINY]: Use
      	it to determine validity of constant addresses.
      	(avr_attribute_table) [absdata]: New variable attribute...
      	(avr_handle_absdata_attribute): ...and handler.
      	(avr_decl_absdata_p): New static function.
      	(avr_encode_section_info) [AVR_TINY]: Use it to add flag
      	AVR_SYMBOL_FLAG_TINY_ABSDATA to respective symbols_refs.
      	(avr_address_cost) [AVR_TINY]: absdata addresses cost 2.
      gcc/testsuite/
      	PR target/78093
      	* lib/target-supports.exp (check_effective_target_avr_tiny): New proc.
      	* gcc.target/avr/torture/tiny-absdata-1.c: New test.
      
      From-SVN: r241468
      Georg-Johann Lay committed
    • re PR tree-optimization/78076 (Conditional jump or move depends on uninitialised… · 06d1ff90
      re PR tree-optimization/78076 (Conditional jump or move depends on uninitialised value @ tree-vect-loop.c:2307)
      
      2016-10-24  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/78076
      	* tree-ssa-loop-split.c (tree_ssa_split_loops): Reset aux
      	also on the loop tree root.
      
      From-SVN: r241467
      Richard Biener committed