1. 22 Jun, 2014 6 commits
  2. 21 Jun, 2014 5 commits
  3. 20 Jun, 2014 22 commits
    • asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS. · 0e37a2f3
      	* asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
      	* flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
      	into SANITIZE_UNDEFINED.
      	* doc/invoke.texi: Describe -fsanitize=bounds.
      	* gimplify.c (gimplify_call_expr): Add gimplification of internal
      	functions created in the FEs.
      	* internal-fn.c: Move "internal-fn.h" after "tree.h".
      	(expand_UBSAN_BOUNDS): New function.
      	* internal-fn.def (UBSAN_BOUNDS): New internal function.
      	* internal-fn.h: Don't define internal functions here.
      	* opts.c (common_handle_option): Add -fsanitize=bounds.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
      	BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
      	* tree-core.h: Define internal functions here.
      	(struct tree_base): Add ifn field.
      	* tree-pretty-print.c: Include "internal-fn.h".
      	(dump_generic_node): Handle functions without CALL_EXPR_FN.
      	* tree.c (get_callee_fndecl): Likewise.
      	(build_call_expr_internal_loc): New function.
      	* tree.def (CALL_EXPR): Update description.
      	* tree.h (CALL_EXPR_IFN): Define.
      	(build_call_expr_internal_loc): Declare.
      	* ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
      	types.
      	(ubsan_type_descriptor): Change bool parameter to enum
      	ubsan_print_style.  Adjust the code.  Add handling of
      	UBSAN_PRINT_ARRAY.
      	(ubsan_expand_bounds_ifn): New function.
      	(ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
      	(ubsan_build_overflow_builtin): Likewise.
      	(instrument_bool_enum_load): Likewise.
      	(ubsan_instrument_float_cast): Likewise.
      	* ubsan.h (enum ubsan_print_style): New enum.
      	(ubsan_expand_bounds_ifn): Declare.
      	(ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
      c-family/
      	* c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h".
      	(ubsan_walk_array_refs_r): New function.
      	(c_genericize): Instrument array bounds.
      	* c-ubsan.c: Include "internal-fn.h".
      	(ubsan_instrument_division): Mark instrumented arrays as having
      	side effects.  Adjust ubsan_type_descriptor call.
      	(ubsan_instrument_shift): Likewise.
      	(ubsan_instrument_vla): Adjust ubsan_type_descriptor call.
      	(ubsan_instrument_bounds): New function.
      	(ubsan_array_ref_instrumented_p): New function.
      	(ubsan_maybe_instrument_array_ref): New function.
      	* c-ubsan.h (ubsan_instrument_bounds): Declare.
      	(ubsan_array_ref_instrumented_p): Declare.
      	(ubsan_maybe_instrument_array_ref): Declare.
      testsuite/
      	* c-c++-common/ubsan/bounds-1.c: New test.
      	* c-c++-common/ubsan/bounds-2.c: New test.
      	* c-c++-common/ubsan/bounds-3.c: New test.
      	* c-c++-common/ubsan/bounds-4.c: New test.
      	* c-c++-common/ubsan/bounds-5.c: New test.
      	* c-c++-common/ubsan/bounds-6.c: New test.
      
      From-SVN: r211859
      Marek Polacek committed
    • re PR fortran/33363 (gfortran is missing -fcase-preserve option) · 87681fb5
      	PR fortran/33363
      	* invoke.texi: Don't mention nonexisting -fcase-lower option.
      
      From-SVN: r211858
      Francois-Xavier Coudert committed
    • rs6000.md: Append `DONE' to preparation statements of `bswap' pattern splitters. · 96740472
      	* config/rs6000/rs6000.md: Append `DONE' to preparation
      	statements of `bswap' pattern splitters.
      
      From-SVN: r211857
      Maciej W. Rozycki committed
    • re PR c++/59296 ([c++11] ref-qualified member function is ambiguous) · caa40bc0
      	PR c++/59296
      	* call.c (add_function_candidate): Avoid special 'this' handling
      	if we have a ref-qualifier.
      
      From-SVN: r211854
      Jason Merrill committed
    • re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ is not a… · e2498d54
      re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ is not a constant expression with valid code)
      
      	PR c++/61556
      	* call.c (build_over_call): Call build_this in template path.
      
      From-SVN: r211853
      Jason Merrill committed
    • Update definition of call_fusage_contains_non_callee_clobbers · 73b3e61b
      2014-06-20  Tom de Vries  <tom@codesourcery.com>
      
      	* target.def (call_fusage_contains_non_callee_clobbers): Update
      	definition.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r211852
      Tom de Vries committed
    • Make the tests big-endian friendly. · 676d89dd
      gcc/testsuite/
      
      	Make the tests big-endian friendly.
      
      	* gcc.target/aarch64/aapcs64/test_25.c: Update.
      	* gcc.target/aarch64/aapcs64/va_arg-1.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-12.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-2.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-3.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-4.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-5.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-6.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-7.c: Ditto.
      
      From-SVN: r211851
      Yufeng Zhang committed
    • asan.c (instrument_strlen_call): Fixed instrumentation of trailing byte. · 0cbf438b
      2014-06-18  Yury Gribov  <y.gribov@samsung.com>
      
      gcc/
      	* asan.c (instrument_strlen_call): Fixed instrumentation of
      	trailing byte.
      
      gcc/testsuite/
      	* c-c++-common/asan/strlen-overflow-1.c: New test.
      
      Co-Authored-By: Max Ostapenko <m.ostapenko@partner.samsung.com>
      
      From-SVN: r211849
      Yury Gribov committed
    • re PR ipa/61540 (internal compiler error in try_make_edge_direct_virtual_call) · bec81025
      2014-06-20  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/61540
      	* ipa-prop.c (impossible_devirt_target): New function.
      	(try_make_edge_direct_virtual_call): Use it, also instead of
      	asserting.
      
      testsuite/
              * g++.dg/ipa/pr61540.C: New test.
      
      From-SVN: r211847
      Martin Jambor committed
    • re PR sanitizer/61530 (segfault with asan) · bf613c02
      2014-06-18  Yury Gribov  <y.gribov@samsung.com>
      
      gcc/
      	PR sanitizer/61530
      	* asan.c (build_check_stmt): Add condition.
      
      gcc/testsuite/
      	* c-c++-common/asan/pr61530.c: New test.
      	
      
      Co-Authored-By: Max Ostapenko <m.ostapenko@partner.samsung.com>
      
      From-SVN: r211846
      Yury Gribov committed
    • re PR ipa/61211 (ICE: verify_cgraph_node failed: edge points to wrong… · 803d0ab0
      re PR ipa/61211 (ICE: verify_cgraph_node failed: edge points to wrong declaration with -O3 -fno-inline)
      
      2014-06-20  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/61211
      	* cgraph.c (clone_of_p): Allow skipped_branch to deal with
      	expanded clones.
      
      From-SVN: r211844
      Martin Jambor committed
    • [AArch64] Fix some saturating math NEON intrinsics types. · 278821f2
      [gcc/]
      	* config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
      	Update comments.
      	(VCONQ): Make comment more helpful.
      	(VCON): Delete.
      	* config/aarch64/aarch64-simd.md
      	(aarch64_sqdmulh_lane<mode>):
      	Use VCOND for operands 2.  Update lane checking and flipping logic.
      	(aarch64_sqrdmulh_lane<mode>): Likewise.
      	(aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
      	(aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
      	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
      	attribute of operand 3 to VCOND.
      	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
      	(aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
      	(aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
      	(aarch64_sqdmull2_lane<mode>_internal): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
      	define_insn.
      	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
      	(aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
      	(aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
      	(aarch64_sqdmull2_laneq<mode>_internal): Likewise.
      	(aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
      	operand to VCOND.  Update lane flipping and bounds checking logic.
      	(aarch64_sqdmlal2_lane<mode>): Likewise.
      	(aarch64_sqdmlsl_lane<mode>): Likewise.
      	(aarch64_sqdmull_lane<mode>): Likewise.
      	(aarch64_sqdmull2_lane<mode>): Likewise.
      	(aarch64_sqdmlal_laneq<mode>):
      	Replace VCON usage with VCONQ.
      	Emit aarch64_sqdmlal_laneq<mode>_internal insn.
      	(aarch64_sqdmlal2_laneq<mode>): Emit
      	aarch64_sqdmlal2_laneq<mode>_internal insn.
      	Replace VCON with VCONQ.
      	(aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
      	(aarch64_sqdmlsl2_laneq<mode>): Likewise.
      	(aarch64_sqdmull_laneq<mode>): Emit
      	aarch64_sqdmull_laneq<mode>_internal insn.
      	Replace VCON with VCONQ.
      	(aarch64_sqdmull2_laneq<mode>): Emit
      	aarch64_sqdmull2_laneq<mode>_internal insn.
      	(aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
      	* config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
      	of 3rd argument to int16x4_t.
      	(vqdmlalh_lane_s16): Likewise.
      	(vqdmlslh_lane_s16): Likewise.
      	(vqdmull_high_lane_s16): Likewise.
      	(vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
      	(vqdmlal_lane_s16): Don't create temporary int16x8_t value.
      	(vqdmlsl_lane_s16): Likewise.
      	(vqdmull_lane_s16): Don't create temporary int16x8_t value.
      	(vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
      	(vqdmlals_lane_s32): Likewise.
      	(vqdmlsls_lane_s32): Likewise.
      	(vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
      	(vqdmulls_lane_s32): Likewise.
      	(vqdmlal_lane_s32): Don't create temporary int32x4_t value.
      	(vqdmlsl_lane_s32): Likewise.
      	(vqdmull_lane_s32): Don't create temporary int32x4_t value.
      	(vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
      	(vqrdmulhh_lane_s16): Likewise.
      	(vqdmlsl_high_lane_s16): Likewise.
      	(vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
      	(vqdmlsl_high_lane_s32): Likewise.
      	(vqrdmulhs_lane_s32): Likewise.
      
      [gcc/testsuite]
      	* gcc.target/aarch64/simd/vqdmulhh_lane_s16.c: New test.
      	* gcc.target/aarch64/simd/vqdmulhs_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulhh_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulhs_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_high_lane_s16.c: New test.
      	* gcc.target/aarch64/simd/vqdmlal_high_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_high_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_high_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlalh_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlals_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_high_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_high_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_high_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_high_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlslh_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsls_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulh_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulh_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulhq_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulhq_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_high_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_high_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_high_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_high_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmullh_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulls_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulh_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulh_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulhq_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulhq_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/vector_intrinsics.c: Simplify arm_neon.h include.
      	(test_vqdmlal_high_lane_s16): Fix parameter type.
      	(test_vqdmlal_high_lane_s32): Likewise.
      	(test_vqdmull_high_lane_s16): Likewise.
      	(test_vqdmull_high_lane_s32): Likewise.
      	(test_vqdmlsl_high_lane_s32): Likewise.
      	(test_vqdmlsl_high_lane_s16): Likewise.
      	* gcc.target/aarch64/scalar_intrinsics.c (test_vqdmlalh_lane_s16):
      	Fix argument type.
      	(test_vqdmlals_lane_s32): Likewise.
      	(test_vqdmlslh_lane_s16): Likewise.
      	(test_vqdmlsls_lane_s32): Likewise.
      	(test_vqdmulhh_lane_s16): Likewise.
      	(test_vqdmulhs_lane_s32): Likewise.
      	(test_vqdmullh_lane_s16): Likewise.
      	(test_vqdmulls_lane_s32): Likewise.
      	(test_vqrdmulhh_lane_s16): Likewise.
      	(test_vqrdmulhs_lane_s32): Likewise.
      
      From-SVN: r211842
      Kyrylo Tkachov committed
    • Fix finding reg-sets of call insn · 6621ab68
      2014-06-20  Tom de Vries  <tom@codesourcery.com>
      
      	* final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
      	get_call_reg_set_usage.
      
      From-SVN: r211841
      Tom de Vries committed
    • Don't save function_used_regs if it contains all call_used_regs · 5fea8186
      2014-06-20  Tom de Vries  <tom@codesourcery.com>
      
      	* final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
      	it contains all call_used_regs.
      
      From-SVN: r211840
      Tom de Vries committed
    • Use function_used_regs variable in collect_fn_hard_reg_usage · 53f2f6c1
      2014-06-20  Tom de Vries  <tom@codesourcery.com>
      
      	* final.c (collect_fn_hard_reg_usage): Add and use variable
      	function_used_regs.
      
      From-SVN: r211839
      Tom de Vries committed
    • cgraph.h (struct symtab_node): Add field in_init_priority_hash (set_init_priority... · 569b1784
      	* cgraph.h (struct symtab_node): Add field in_init_priority_hash
      	(set_init_priority, get_init_priority, set_fini_priority,
      	get_fini_priority): New methods.
      	* tree.c (init_priority_for_decl): Remove.
      	(init_ttree): Do not initialize init priority.
      	(decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
      	(decl_priority_info): Remove.
      	(decl_init_priority_insert): Rewrite.
      	(decl_fini_priority_insert): Rewrite.
      	* tree.h (tree_priority_map_eq, tree_priority_map_hash,
      	tree_priority_map_marked_p): Remove.
      	* lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
      	* lto-streamer-out.c (hash_tree): Do not hash priorities.
      	* tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
      	not output priorities.
      	(pack_ts_function_decl_value_fields): Likewise.
      	* tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
      	not input priorities.
      	(unpack_ts_function_decl_value_fields): Likewise.
      	* symtab.c (symbol_priority_map): Declare.
      	(init_priority_hash): Declare.
      	(symtab_unregister_node): Unregister from priority hash, too.
      	(symtab_node::get_init_priority, cgraph_node::get_fini_priority):
      	New methods.
      	(symbol_priority_map_eq, symbol_priority_map_hash): New functions.
      	(symbol_priority_info): New function.
      	(symtab_node::set_init_priority, cgraph_node::set_fini_priority):
      	New methods.
      	* tree-core.h (tree_priority_map): Remove.
      
      	* lto.c (compare_tree_sccs_1): Do not compare priorities.
      
      From-SVN: r211838
      Jan Hubicka committed
    • tree-ssa-math-opts.c (do_shift_rotate, [...]): Cast 0xff to uint64_t before shifting it up. · 88f5cfcd
      	* tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
      	0xff to uint64_t before shifting it up.
      
      From-SVN: r211837
      Jakub Jelinek committed
    • arm.c (arm_output_mi_thunk): Fix offset for TARGET_THUMB1_ONLY. · 6d45574a
      2014-06-20  Julian Brown  <julian@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	* config/arm/arm.c (arm_output_mi_thunk): Fix offset for
      	TARGET_THUMB1_ONLY. Add comments.
      
      
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r211834
      Julian Brown committed
    • re PR testsuite/61567 (gfortran.dg/coarray_collectives_{5,6}.f90 failure) · 27a4e2d0
      2014-06-20  Tobias Burnus  <burnus@net-b.de>
      
              PR testsuite/61567
              * gfortran.dg/coarray_collectives_5.f90: Update
              dg-final scan-tree-dump-times.
              * gfortran.dg/coarray_collectives_6.f90: Ditto.
      
      From-SVN: r211833
      Tobias Burnus committed
    • re PR lto/61123 (With LTO, -fno-short-enums is ignored, resulting in ABI mis-matching in linking.) · dd6fe7d4
      c-family/ChangeLog
      2014-06-20 Hale Wang <hale.wang@arm.com>
      
      	PR lto/61123
      	* c.opt (fshort-enums): Add to LTO.
      	* c.opt (fshort-wchar): Likewise.
      
      testsuite/ChangeLog
      2014-06-20 Hale Wang <hale.wang@arm.com>
      
      	* gcc.target/arm/lto/: New folder to verify the LTO option.
      	* gcc.target/arm/lto/pr61123-enum-size_0.c: New test case.
      	* gcc.target/arm/lto/pr61123-enum-size_1.c: Likewise.
      	* gcc.target/arm/lto/lto.exp: New exp file used to test LTO option.
      	* lib/lto.exp (object-readelf): New procedure.
      
      From-SVN: r211832
      Hale Wang committed
    • Daily bump. · 9981da24
      From-SVN: r211831
      GCC Administrator committed
  4. 19 Jun, 2014 7 commits