1. 16 Jul, 2017 2 commits
    • asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE fixpoint arithmetics. · e4e822ab
      	* asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
      	fixpoint arithmetics.
      
      From-SVN: r250240
      Jan Hubicka committed
    • profile-count.h (profile_probability::from_reg_br_prob_note, [...]): New functions. · 5fa396ad
      	* profile-count.h (profile_probability::from_reg_br_prob_note,
      	profile_probability::to_reg_br_prob_note): New functions.
      	* doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
      	* reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
      	* predict.c (probability_reliable_p): Update.
      	(edge_probability_reliable_p): Update.
      	(br_prob_note_reliable_p): Update.
      	(invert_br_probabilities): Update.
      	(add_reg_br_prob_note): New function.
      	(combine_predictions_for_insn): Update.
      	* asan.c (asan_clear_shadow): Update.
      	* cfgbuild.c (compute_outgoing_frequencies): Update.
      	* cfgrtl.c (force_nonfallthru_and_redirect): Update.
      	(update_br_prob_note): Update.
      	(rtl_verify_edges): Update.
      	(purge_dead_edges): Update.
      	(fixup_reorder_chain): Update.
      	* emit-rtl.c (try_split): Update.
      	* ifcvt.c (cond_exec_process_insns): Update.
      	(cond_exec_process_if_block): Update.
      	(dead_or_predicable): Update.
      	* internal-fn.c (expand_addsub_overflow): Update.
      	(expand_neg_overflow): Update.
      	(expand_mul_overflow): Update.
      	* loop-doloop.c (doloop_modify): Update.
      	* loop-unroll.c (compare_and_jump_seq): Update.
      	* optabs.c (emit_cmp_and_jump_insn_1): Update.
      	* predict.h: Update.
      	* reorg.c (mostly_true_jump): Update.
      	* rtl.h: Update.
      	* config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
      	* config/alpha/alpha.c (emit_unlikely_jump): Update.
      	* config/arc/arc.c: (emit_unlikely_jump): Update.
      	* config/arm/arm.c: (emit_unlikely_jump): Update.
      	* config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
      	* config/frv/frv.c (frv_print_operand_jump_hint): Update.
      	* config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
      	(ix86_print_operand): Update.
      	(ix86_split_fp_branch): Update.
      	(predict_jump): Update.
      	* config/ia64/ia64.c (ia64_print_operand): Update.
      	* config/mmix/mmix.c (mmix_print_operand): Update.
      	* config/powerpcspe/powerpcspe.c (output_cbranch): Update.
      	(rs6000_expand_split_stack_prologue): Update.
      	* config/rs6000/rs6000.c: Update.
      	* config/s390/s390.c (s390_expand_vec_strlen): Update.
      	(s390_expand_vec_movstr): Update.
      	(s390_expand_cs_tdsi): Update.
      	(s390_expand_split_stack_prologue): Update.
      	* config/sh/sh.c (sh_print_operand): Update.
      	(expand_cbranchsi4): Update.
      	(expand_cbranchdi4): Update.
      	* config/sparc/sparc.c (output_v9branch): Update.
      	* config/spu/spu.c (get_branch_target): Update.
      	(ea_load_store_inline): Update.
      	* config/tilegx/tilegx.c (cbranch_predicted_p): Update.
      	* config/tilepro/tilepro.c: Update.
      	* gcc.dg/predict-8.c: Update.
      
      From-SVN: r250239
      Jan Hubicka committed
  2. 13 Jul, 2017 1 commit
  3. 06 Jul, 2017 2 commits
    • asan.h (asan_sanitize_allocas_p): Declare. · 5094f7d5
      gcc/
      	* asan.h (asan_sanitize_allocas_p): Declare.
      	* asan.c (asan_sanitize_allocas_p): New function.
      	(handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
      	(handle_builtin_alloca): Likewise.
      	* cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
      	if !asan_sanitize_allocas_p.
      	* params.def (asan-instrument-allocas): Add new option.
      	* params.h (ASAN_PROTECT_ALLOCAS): Define.
      	* opts.c (common_handle_option): Disable allocas sanitization for
      	KASan by default.
      
      gcc/testsuite/
      	* c-c++-common/asan/kasan-alloca-1.c: New test.
      	* c-c++-common/asan/kasan-alloca-2.c: Likewise.
      
      From-SVN: r250032
      Maxim Ostapenko committed
    • ASAN: Implement dynamic allocas/VLAs sanitization. · e3174bdf
      gcc/
      	* asan.c: Include gimple-fold.h.
      	(get_last_alloca_addr): New function.
      	(handle_builtin_stackrestore): Likewise.
      	(handle_builtin_alloca): Likewise.
      	(asan_emit_allocas_unpoison): Likewise.
      	(get_mem_refs_of_builtin_call): Add new parameter, remove const
      	quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
      	BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
      	(instrument_builtin_call): Pass gimple iterator to
      	get_mem_refs_of_builtin_call.
      	(last_alloca_addr): New global.
      	* asan.h (asan_emit_allocas_unpoison): Declare.
      	* builtins.c (expand_asan_emit_allocas_unpoison): New function.
      	(expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
      	* cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
      	if function calls alloca.
      	* gimple-fold.c (replace_call_with_value): Remove static keyword.
      	* gimple-fold.h (replace_call_with_value): Declare.
      	* internal-fn.c: Include asan.h.
      	* sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
      	BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
      
      gcc/testsuite/
      	* c-c++-common/asan/alloca_big_alignment.c: New test.
      	* c-c++-common/asan/alloca_detect_custom_size.c: Likewise.
      	* c-c++-common/asan/alloca_instruments_all_paddings.c: Likewise.
      	* c-c++-common/asan/alloca_loop_unpoisoning.c: Likewise.
      	* c-c++-common/asan/alloca_overflow_partial.c: Likewise.
      	* c-c++-common/asan/alloca_overflow_right.c: Likewise.
      	* c-c++-common/asan/alloca_safe_access.c: Likewise.
      	* c-c++-common/asan/alloca_underflow_left.c: Likewise.
      
      From-SVN: r250031
      Maxim Ostapenko committed
  4. 03 Jul, 2017 1 commit
    • Make stack epilogue more efficient · 7b972538
      2017-07-03  Martin Liska  <mliska@suse.cz>
      
      	* asan.c (asan_emit_stack_protection): Unpoison just red zones
      	and shadow memory of auto variables which are subject of
      	use-after-scope sanitization.
      	(asan_expand_mark_ifn): Add do set only when is_poison.
      
      From-SVN: r249900
      Martin Liska committed
  5. 29 Jun, 2017 1 commit
    • asan.c (asan_emit_stack_protection): Update. · 357067f2
      	* asan.c (asan_emit_stack_protection): Update.
      	(create_cond_insert_point): Update.
      	* auto-profile.c (afdo_propagate_circuit): Update.
      	* basic-block.h (struct edge_def): Turn probability to
      	profile_probability.
      	(EDGE_FREQUENCY): Update.
      	* bb-reorder.c (find_traces_1_round): Update.
      	(better_edge_p): Update.
      	(sanitize_hot_paths): Update.
      	* cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
      	(make_single_succ_edge): Update.
      	(check_bb_profile): Update.
      	(dump_edge_info): Update.
      	(update_bb_profile_for_threading): Update.
      	* cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
      	probabilitycount to 0.
      	* cfgbuild.c (compute_outgoing_frequencies): Update.
      	* cfgcleanup.c (try_forward_edges): Update.
      	(outgoing_edges_match): Update.
      	(try_crossjump_to_edge): Update.
      	* cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
      	(expand_gimple_tailcall): Update.
      	(construct_init_block): Use make_single_succ_edge.
      	(construct_exit_block): Use make_single_succ_edge.
      	* cfghooks.c (verify_flow_info): Update.
      	(redirect_edge_succ_nodup): Update.
      	(split_edge): Update.
      	(account_profile_record): Update.
      	* cfgloopanal.c (single_likely_exit): Update.
      	* cfgloopmanip.c (scale_loop_profile): Update.
      	(set_zero_probability): Remove.
      	(duplicate_loop_to_header_edge): Update.
      	* cfgloopmanip.h (loop_version): Update prototype.
      	* cfgrtl.c (try_redirect_by_replacing_jump): Update.
      	(force_nonfallthru_and_redirect): Update.
      	(update_br_prob_note): Update.
      	(rtl_verify_edges): Update.
      	(purge_dead_edges): Update.
      	(rtl_lv_add_condition_to_bb): Update.
      	* cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
      	* cgraphunit.c (init_lowered_empty_function): Update.
      	(cgraph_node::expand_thunk): Update.
      	* cilk-common.c: Include profile-count.h
      	* dojump.c (inv): Remove.
      	(jumpifnot): Update.
      	(jumpifnot_1): Update.
      	(do_jump_1): Update.
      	(do_jump): Update.
      	(do_jump_by_parts_greater_rtx): Update.
      	(do_compare_rtx_and_jump): Update.
      	* dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
      	do_jump_1. do_compare_rtx_and_jump): Update prototype.
      	* dwarf2cfi.c: Include profile-count.h
      	* except.c (dw2_build_landing_pads): Use make_single_succ_edge.
      	(sjlj_emit_dispatch_table): Likewise.
      	* explow.c: Include profile-count.h
      	* expmed.c (emit_store_flag_force): Update.
      	(do_cmp_and_jump): Update.
      	* expr.c (compare_by_pieces_d::generate): Update.
      	(compare_by_pieces_d::finish_mode): Update.
      	(emit_block_move_via_loop): Update.
      	(store_expr_with_bounds): Update.
      	(store_constructor): Update.
      	(expand_expr_real_2): Update.
      	(expand_expr_real_1): Update.
      	* expr.h (try_casesi, try_tablejump): Update prototypes.
      	* gimple-pretty-print.c (dump_probability): Update.
      	(dump_profile): New.
      	(dump_gimple_label): Update.
      	(dump_gimple_bb_header): Update.
      	* graph.c (draw_cfg_node_succ_edges): Update.
      	* hsa-gen.c (convert_switch_statements): Update.
      	* ifcvt.c (cheap_bb_rtx_cost_p): Update.
      	(find_if_case_1): Update.
      	(find_if_case_2): Update.
      	* internal-fn.c (expand_arith_overflow_result_store): Update.
      	(expand_addsub_overflow): Update.
      	(expand_neg_overflow): Update.
      	(expand_mul_overflow): Update.
      	(expand_vector_ubsan_overflow): Update.
      	* ipa-cp.c (good_cloning_opportunity_p): Update.
      	* ipa-split.c (split_function): Use make_single_succ_edge.
      	* ipa-utils.c (ipa_merge_profiles): Update.
      	* loop-doloop.c (add_test): Update.
      	(doloop_modify): Update.
      	* loop-unroll.c (compare_and_jump_seq): Update.
      	(unroll_loop_runtime_iterations): Update.
      	* lra-constraints.c (lra_inheritance): Update.
      	* lto-streamer-in.c (input_cfg): Update.
      	* lto-streamer-out.c (output_cfg): Update.
      	* mcf.c (adjust_cfg_counts): Update.
      	* modulo-sched.c (sms_schedule): Update.
      	* omp-expand.c (expand_omp_for_init_counts): Update.
      	(extract_omp_for_update_vars): Update.
      	(expand_omp_ordered_sink): Update.
      	(expand_omp_for_ordered_loops): Update.
      	(expand_omp_for_generic): Update.
      	(expand_omp_for_static_nochunk): Update.
      	(expand_omp_for_static_chunk): Update.
      	(expand_cilk_for): Update.
      	(expand_omp_simd): Update.
      	(expand_omp_taskloop_for_outer): Update.
      	(expand_omp_taskloop_for_inner): Update.
      	* omp-simd-clone.c (simd_clone_adjust): Update.
      	* optabs.c (expand_doubleword_shift): Update.
      	(expand_abs): Update.
      	(emit_cmp_and_jump_insn_1): Update.
      	(expand_compare_and_swap_loop): Update.
      	* optabs.h (emit_cmp_and_jump_insns): Update prototype.
      	* predict.c (predictable_edge_p): Update.
      	(edge_probability_reliable_p): Update.
      	(set_even_probabilities): Update.
      	(combine_predictions_for_insn): Update.
      	(combine_predictions_for_bb): Update.
      	(propagate_freq): Update.
      	(estimate_bb_frequencies): Update.
      	(force_edge_cold): Update.
      	* profile-count.c (profile_count::dump): Add missing space into dump.
      	(profile_count::debug): Add newline.
      	(profile_count::differs_from_p): Explicitly convert to unsigned.
      	(profile_count::stream_in): Update.
      	(profile_probability::dump): New member function.
      	(profile_probability::debug): New member function.
      	(profile_probability::differs_from_p): New member function.
      	(profile_probability::differs_lot_from_p): New member function.
      	(profile_probability::stream_in): New member function.
      	(profile_probability::stream_out): New member function.
      	* profile-count.h (profile_count_quality): Rename to ...
      	(profile_quality): ... this one.
      	(profile_probability): New.
      	(profile_count): Update.
      	* profile.c (compute_branch_probabilities): Update.
      	* recog.c (peep2_attempt): Update.
      	* sched-ebb.c (schedule_ebbs): Update.
      	* sched-rgn.c (find_single_block_region): Update.
      	(compute_dom_prob_ps): Update.
      	(schedule_region): Update.
      	* sel-sched-ir.c (compute_succs_info): Update.
      	* stmt.c (struct case_node): Update.
      	(do_jump_if_equal): Update.
      	(get_outgoing_edge_probs): Update.
      	(conditional_probability): Update.
      	(emit_case_dispatch_table): Update.
      	(expand_case): Update.
      	(expand_sjlj_dispatch_table): Update.
      	(emit_case_nodes): Update.
      	* targhooks.c: Update.
      	* tracer.c (better_p): Update.
      	(find_best_successor): Update.
      	* trans-mem.c (expand_transaction): Update.
      	* tree-call-cdce.c: Update.
      	* tree-cfg.c (gimple_split_edge): Upate.
      	(move_sese_region_to_fn): Upate.
      	* tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
      	* tree-eh.c (lower_resx): Upate.
      	(cleanup_empty_eh_move_lp): Upate.
      	* tree-if-conv.c (version_loop_for_if_conversion): Update.
      	* tree-inline.c (copy_edges_for_bb): Update.
      	(copy_cfg_body): Update.
      	* tree-parloops.c (gen_parallel_loop): Update.
      	* tree-profile.c (gimple_gen_ic_func_profiler): Update.
      	(gimple_gen_time_profiler): Update.
      	* tree-ssa-dce.c (remove_dead_stmt): Update.
      	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
      	* tree-ssa-loop-im.c (execute_sm_if_changed): Update.
      	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
      	(unloop_loops): Update.
      	(try_peel_loop): Update.
      	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
      	* tree-ssa-loop-split.c (connect_loops): Update.
      	(split_loop): Update.
      	* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
      	(hoist_guard): Update.
      	* tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
      	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
      	(value_replacement): Update.
      	* tree-ssa-reassoc.c (branch_fixup): Update.
      	* tree-ssa-tail-merge.c (replace_block_by): Update.
      	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
      	(create_edge_and_update_destination_phis): Update.
      	(compute_path_counts): Update.
      	(recompute_probabilities): Update.
      	(update_joiner_offpath_counts): Update.
      	(freqs_to_counts_path): Update.
      	(duplicate_thread_path): Update.
      	* tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
      	(struct switch_conv_info): Update.
      	(gen_inbound_check): Update.
      	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
      	(vect_do_peeling): Update.
      	(vect_loop_versioning): Update.
      	* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
      	(optimize_mask_stores): Update.
      	* ubsan.c (ubsan_expand_null_ifn): Update.
      	* value-prof.c (gimple_divmod_fixed_value): Update.
      	(gimple_divmod_fixed_value_transform): Update.
      	(gimple_mod_pow2): Update.
      	(gimple_mod_pow2_value_transform): Update.
      	(gimple_mod_subtract): Update.
      	(gimple_mod_subtract_transform): Update.
      	(gimple_ic): Update.
      	(gimple_stringop_fixed_value): Update.
      	(gimple_stringops_transform): Update.
      	* value-prof.h: Update.
      
      From-SVN: r249800
      Jan Hubicka committed
  6. 28 Jun, 2017 1 commit
  7. 13 Jun, 2017 1 commit
    • Implement no_sanitize function attribute · 45b2222a
      2017-06-13  Martin Liska  <mliska@suse.cz>
      
      	PR sanitize/78204
      	* c-c++-common/ubsan/attrib-2.c (float_cast2): Enhance the
      	test by adding no_sanitize attribute.
      	* gcc.dg/asan/use-after-scope-4.c: Likewise.
      2017-06-13  Martin Liska  <mliska@suse.cz>
      
      	PR sanitize/78204
      	* c-attribs.c (add_no_sanitize_value): New function.
      	(handle_no_sanitize_attribute): Likewise.
      	(handle_no_sanitize_address_attribute): Use the function.
      	(handle_no_sanitize_thread_attribute): New function.
      	(handle_no_address_safety_analysis_attribute): Use
      	add_no_sanitize_value.
      	(handle_no_sanitize_undefined_attribute): Likewise.
      	* c-common.h: Declare new functions.
      	* c-ubsan.c (ubsan_instrument_division): Use sanitize_flags_p.
      	(ubsan_instrument_shift): Likewise.
      	(ubsan_instrument_bounds): Likewise.
      	(ubsan_maybe_instrument_array_ref): Likewise.
      	(ubsan_maybe_instrument_reference_or_call): Likewise.
      2017-06-13  Martin Liska  <mliska@suse.cz>
      
      	PR sanitize/78204
      	* asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
      	(gate_asan): Likewise.
      	* asan.h (asan_no_sanitize_address_p): Remove the function.
      	(sanitize_flags_p): New function.
      	* builtins.def: Fix coding style.
      	* common.opt: Use renamed enum value.
      	* convert.c (convert_to_integer_1): Use sanitize_flags_p.
      	* doc/extend.texi: Document no_sanitize attribute.
      	* flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
      	to SANITIZE_UNDEFINED_NONDEFAULT.
      	* gcc.c (sanitize_spec_function): Use the renamed enum value.
      	* gimple-fold.c (optimize_atomic_compare_exchange_p):
      	Use sanitize_flags_p.
      	* gimplify.c (gimplify_function_tree): Likewise.
      	* ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
      	* opts.c (parse_no_sanitize_attribute): New function.
      	(common_handle_option): Use renamed enum value.
      	* opts.h (parse_no_sanitize_attribute): Declare.
      	* tree.c (sanitize_flags_p): New function.
      	* tree.h: Declared here.
      	* tsan.c: Use sanitize_flags_p.
      	* ubsan.c (ubsan_expand_null_ifn): Likewise.
      	(instrument_mem_ref): Likewise.
      	(instrument_bool_enum_load): Likewise.
      	(do_ubsan_in_current_function): Remove the function.
      	(pass_ubsan::execute): Use sanitize_flags_p.
      	* ubsan.h: Remove do_ubsan_in_current_function
      	* tree-cfg.c (print_no_sanitize_attr_value): New function.
      	(dump_function_to_file): Use it here.
      2017-06-13  Martin Liska  <mliska@suse.cz>
      
      	PR sanitize/78204
      	* class.c (build_base_path): Use sanitize_flags_p.
      	* cp-gimplify.c (cp_genericize_r): Likewise.
      	(cp_genericize_tree): Likewise.
      	(cp_genericize): Likewise.
      	* cp-ubsan.c (cp_ubsan_instrument_vptr_p): Likewise.
      	* decl.c (compute_array_index_type): Likewise.
      	(start_preparsed_function): Likewise.
      	* decl2.c (one_static_initialization_or_destruction): Likewise.
      	* init.c (finish_length_check): Likewise.
      	* lambda.c (maybe_add_lambda_conv_op): Likewise.
      	* typeck.c (cp_build_binary_op): Likewise.
      	(build_static_cast_1): Likewise.
      2017-06-13  Martin Liska  <mliska@suse.cz>
      
      	PR sanitize/78204
      	* c-convert.c (convert): Use sanitize_flags_p.
      	* c-decl.c (grokdeclarator): Likewise.
      	* c-typeck.c (convert_for_assignment): Likewise.
      	(c_finish_return): Likewise.
      	(build_binary_op): Likewise.
      
      From-SVN: r249158
      Martin Liska committed
  8. 05 Apr, 2017 1 commit
  9. 27 Mar, 2017 1 commit
  10. 20 Mar, 2017 1 commit
  11. 09 Mar, 2017 1 commit
  12. 06 Mar, 2017 1 commit
  13. 30 Jan, 2017 1 commit
  14. 25 Jan, 2017 1 commit
    • re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer:… · e5e391d6
      re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initialization-order-fiasco")
      
      PR lto/79061
      
      gcc/
      
      	* asan.c (get_translation_unit_decl): New function.
      	(asan_add_global): Extract modules file name from globals
      	TRANSLATION_UNIT_DECL name.
      
      gcc/fortran/
      
      	* f95-lang.c (gfc_create_decls): Include stringpool.h.
      	Pass main_input_filename to build_translation_unit_decl.
      
      gcc/ada/
      
      	* gcc-interface/utils.c (get_global_context): Pass main_input_filename
      	to build_translation_unit_decl.
      
      gcc/c/
      
      	* c-decl.c (pop_scope): Pass main_input_filename to
      	build_translation_unit_decl.
      
      gcc/cp/
      
      	* decl.c (cxx_init_decl_processing): Pass main_input_filename
      	to build_translation_unit_decl.
      
      From-SVN: r244890
      Maxim Ostapenko committed
  15. 23 Jan, 2017 3 commits
    • use-after-scope: handle writes to a poisoned variable · f6b9f2ff
      2017-01-23  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/asan/use-after-scope-10.c: New test.
      	* gcc.dg/asan/use-after-scope-11.c: New test.
      	* g++.dg/asan/use-after-scope-5.C: New test.
      2017-01-23  Jakub Jelinek  <jakub@redhat.com>
      	    Martin Liska  <mliska@suse.cz>
      
      	* asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
      	* asan.c (asan_expand_poison_ifn): Support stores and use
      	appropriate ASAN report function.
      	* internal-fn.c (expand_ASAN_POISON_USE): New function.
      	* internal-fn.def (ASAN_POISON_USE): Declare.
      	* tree-into-ssa.c (maybe_add_asan_poison_write): New function.
      	(maybe_register_def): Create ASAN_POISON_USE when sanitizing.
      	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
      	ASAN_POISON calls w/o LHS.
      	* tree-ssa.c (execute_update_addresses_taken): Create clobber
      	for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
      	from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
      	* gimplify.c (asan_poison_variables): Add attribute
      	use_after_scope_memory to variables that really needs to live
      	in memory.
      	* tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
      	having the attribute.
      
      From-SVN: r244793
      Martin Liska committed
    • Speed up use-after-scope (v2): rewrite into SSA · c7775327
      2017-01-23  Martin Liska  <mliska@suse.cz>
      
      	* asan.c (create_asan_shadow_var): New function.
      	(asan_expand_poison_ifn): Likewise.
      	* asan.h (asan_expand_poison_ifn): New declaration.
      	* internal-fn.c (expand_ASAN_POISON): Likewise.
      	* internal-fn.def (ASAN_POISON): New builtin.
      	* sanopt.c (pass_sanopt::execute): Expand
      	asan_expand_poison_ifn.
      	* tree-inline.c (copy_decl_for_dup_finish): Make function
      	external.
      	* tree-inline.h (copy_decl_for_dup_finish): Likewise.
      	* tree-ssa.c (is_asan_mark_p): New function.
      	(execute_update_addresses_taken): Rewrite local variables
      	(identified just by use-after-scope as addressable) into SSA.
      2017-01-23  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/asan/use-after-scope-3.c: Add additional flags.
      	* gcc.dg/asan/use-after-scope-9.c: Likewise and grep for
      	sanopt optimization for ASAN_POISON.
      
      From-SVN: r244791
      Martin Liska committed
    • re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer:… · e3d53f96
      re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initialization-order-fiasco")
      
      Revert fix for PR lto/79061 due to this regresses compile-time by 100%
      on some fortran cases.
      
      From-SVN: r244773
      Maxim Ostapenko committed
  16. 18 Jan, 2017 1 commit
    • re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer:… · 5807fb91
      re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initialization-order-fiasco")
      
      	PR lto/79061
      gcc/
      
      	* asan.c (get_translation_unit_decl): New function.
      	(asan_add_global): Extract modules file name from globals
      	TRANSLATION_UNIT_DECL in lto mode.
      	* tree.c (build_translation_unit_decl): Add source location for newly
      	built TRANSLATION_UNIT_DECL.
      
      gcc/lto/
      
      	* lto.c (lto_read_decls): accept location cache for
      	TRANSLATION_UNIT_DECL.
      	
      gcc/testsuite/
      
      	* gcc.dg/cpp/mi1.c: Adjust testcase.
      	* gcc.dg/pch/cpp-3.c: Likewise.
      
      From-SVN: r244581
      Maxim Ostapenko committed
  17. 13 Jan, 2017 1 commit
  18. 09 Jan, 2017 1 commit
  19. 01 Jan, 2017 1 commit
  20. 13 Dec, 2016 2 commits
    • Rename BUILT_IN_ASAN_CLOBBER_N to · 5594a028
      	* asan.c (asan_expand_mark_ifn): Use renamed
      	BUILT_IN_ASAN_{UN}CLOBBER_N to BUILT_IN_ASAN_{UN}POISON_STACK_MEMORY.
      	* sanitizer.def: Likewise.
      
      From-SVN: r243605
      Martin Liska committed
    • Add pretty printer for ASAN_MARK and add a helper fn · 56b7aede
      	* asan.c (asan_mark_poison_p): Remove.
      	(asan_mark_p): New function.
      	(transform_statements): Use the function.
      	(asan_expand_mark_ifn): Do not use masked enum.
      	* asan.h (enum asan_mark_flags): Declare it via a macro.
      	* gimple-pretty-print.c (dump_gimple_call_args): Dump first
      	argument of ASAN_MARK.
      	* gimplify.c (build_asan_poison_call_expr): Use new enum values.
      	(asan_poison_variable): Likewise.
      	* gcc.dg/asan/use-after-scope-goto-1.c: Update first argument of
      	scanned pattern ASAN_MARK.
      	* gcc.dg/asan/use-after-scope-goto-2.c: Likewise.
      	* gcc.dg/asan/use-after-scope-switch-1.c: Likewise.
      	* gcc.dg/asan/use-after-scope-switch-2.c: Likewise.
      	* gcc.dg/asan/use-after-scope-switch-3.c: Likewise.
      
      From-SVN: r243597
      Martin Liska committed
  21. 02 Dec, 2016 1 commit
    • Add support for ASan odr_indicator. · 84b0769e
      config/
      
              * bootstrap-asan.mk: Replace LSAN_OPTIONS=detect_leaks=0 with
              ASAN_OPTIONS=detect_leaks=0:use_odr_indicator=1.
      
      gcc/
      
              * asan.c (asan_global_struct): Refactor.
              (create_odr_indicator): New function.
              (asan_needs_odr_indicator_p): Likewise.
              (is_odr_indicator): Likewise.
              (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's
              constructor.
              (asan_protect_global): Do not protect odr indicators.
      
      gcc/c-family/
      
      	* c-attribs.c (asan odr indicator): New attribute.
      	(handle_asan_odr_indicator_attribute): New function.
      
      gcc/testsuite/
      
              * c-c++-common/asan/no-redundant-odr-indicators-1.c: New test.
      
      From-SVN: r243153
      Maxim Ostapenko committed
  22. 30 Nov, 2016 1 commit
  23. 08 Nov, 2016 1 commit
    • asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove. · fbdb92eb
      gcc/
      
      	* asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove.
      	* asan.c (ASAN_STACK_MAGIC_PARTIAL): Replace with
      	ASAN_STACK_MAGIC_MIDDLE.
      	(asan_global_struct): Increase the size of fields.
      	(asan_add_global): Add new field constructor.
      	* sanitizer.def (__asan_version_mismatch_check_v6): Replace with
      	__asan_version_mismatch_check_v8.
      
      gcc/testsuite/
      
      	* c-c++-common/asan/null-deref-1.c: Adjust testcase.
      
      From-SVN: r241983
      Maxim Ostapenko committed
  24. 07 Nov, 2016 1 commit
    • Introduce -fsanitize-address-use-after-scope · 6dc4a604
      	* c-warn.c (warn_for_unused_label): Save all labels used
      	in goto or in &label.
      	* asan.c (enum asan_check_flags): Move the enum to header file.
      	(asan_init_shadow_ptr_types): Make type creation more generic.
      	(shadow_mem_size): New function.
      	(asan_emit_stack_protection): Use newly added ASAN_SHADOW_GRANULARITY.
      	Rewritten stack unpoisoning code.
      	(build_shadow_mem_access): Add new argument return_address.
      	(instrument_derefs): Instrument local variables if use after scope
      	sanitization is enabled.
      	(asan_store_shadow_bytes): New function.
      	(asan_expand_mark_ifn): Likewise.
      	(asan_sanitize_stack_p): Moved from asan_sanitize_stack_p.
      	* asan.h (enum asan_mark_flags): Moved here from asan.c
      	(asan_protect_stack_decl): Protect all declaration that need
      	to live in memory.
      	(asan_sanitize_use_after_scope): New function.
      	(asan_no_sanitize_address_p): Likewise.
      	* cfgexpand.c (partition_stack_vars): Consider
      	asan_sanitize_use_after_scope in condition.
      	(expand_stack_vars): Likewise.
      	* common.opt (-fsanitize-address-use-after-scope): New option.
      	* doc/invoke.texi (use-after-scope-direct-emission-threshold):
      	Explain the parameter.
      	* flag-types.h (enum sanitize_code): Define SANITIZE_USE_AFTER_SCOPE.
      	* gimplify.c (build_asan_poison_call_expr): New function.
      	(asan_poison_variable): Likewise.
      	(gimplify_bind_expr): Generate poisoning/unpoisoning for local
      	variables that have address taken.
      	(gimplify_decl_expr): Likewise.
      	(gimplify_target_expr): Likewise for C++ temporaries.
      	(sort_by_decl_uid): New function.
      	(gimplify_expr): Unpoison all variables for a label we can jump
      	from outside of a scope.
      	(gimplify_switch_expr): Unpoison variables defined in the switch
      	context.
      	(gimplify_function_tree): Clear asan_poisoned_variables.
      	(asan_poison_variables): New function.
      	(warn_switch_unreachable_r): Handle IFN_ASAN_MARK.
      	* internal-fn.c (expand_ASAN_MARK): New function.
      	* internal-fn.def (ASAN_MARK): Declare.
      	* opts.c (finish_options): Handle -fstack-reuse if
      	-fsanitize-address-use-after-scope is enabled.
      	(common_handle_option): Enable address sanitization if
      	-fsanitize-address-use-after-scope is enabled.
      	* params.def (PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD):
      	New parameter.
      	* params.h: Likewise.
      	* sancov.c (pass_sanopt::execute): Handle IFN_ASAN_MARK.
      	* sanitizer.def: Define __asan_poison_stack_memory and
      	__asan_unpoison_stack_memory functions.
      	* asan.c (asan_mark_poison_p): New function.
      	(transform_statements): Handle asan_mark_poison_p calls.
      	* gimple.c (nonfreeing_call_p): Handle IFN_ASAN_MARK.
      
      From-SVN: r241896
      Martin Liska committed
  25. 13 Oct, 2016 1 commit
    • Move MEMMODEL_* from coretypes.h to memmodel.h · 4d0cdd0c
      2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
          into ...
          * memmodel.h: This file.
          * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
            caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
            cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
            combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
            common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
            common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
            common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
            compare-elim.c, config/aarch64/aarch64-builtins.c,
            config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
            config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
            config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
            config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
            config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
            config/darwin.c, config/epiphany/epiphany.c,
            config/epiphany/mode-switch-use.c,
            config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
            config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
            config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
            config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
            config/m68k/m68k.c, config/mcore/mcore.c,
            config/microblaze/microblaze.c, config/mmix/mmix.c,
            config/mn10300/mn10300.c, config/moxie/moxie.c,
            config/msp430/msp430.c, config/nds32/nds32-cost.c,
            config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
            config/nds32/nds32-memory-manipulation.c,
            config/nds32/nds32-predicates.c, config/nds32/nds32.c,
            config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
            config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
            config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
            config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
            config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
            config/stormy16/stormy16.c, config/tilegx/tilegx.c,
            config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
            config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
            coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
            df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
            dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
            expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
            ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
            ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
            ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
            loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
            lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
            lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
            lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
            postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
            recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
            reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
            rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
            sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
            stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
            targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
            tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
            tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
            tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
            var-tracking.c, varasm.c: Include memmodel.h.
          * genattrtab.c (write_header): Include memmodel.h in generated file.
          * genautomata.c (main): Likewise.
          * gengtype.c (open_base_files): Likewise.
          * genopinit.c (main): Likewise.
          * genconditions.c (write_header): Include memmodel.h earlier in
          generated file.
          * genemit.c (main): Likewise.
          * genoutput.c (output_prologue): Likewise.
          * genpeep.c (main): Likewise.
          * genpreds.c (write_insn_preds_c): Likewise.
          * genrecog.c (write_header): Likewise.
          * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
      
          gcc/ada/
          * gcc-interface/utils2.c: Include memmodel.h.
      
          gcc/c-family/
          * c-cppbuiltin.c: Include memmodel.h.
          * c-opts.c: Likewise.
          * c-pragma.c: Likewise.
          * c-warn.c: Likewise.
      
          gcc/c/
          * c-typeck.c: Include memmodel.h.
      
          gcc/cp/
          * decl2.c: Include memmodel.h.
          * rtti.c: Likewise.
      
          gcc/fortran/
          * trans-intrinsic.c: Include memmodel.h.
      
          gcc/go/
          * go-backend.c: Include memmodel.h.
      
          libgcc/
          * libgcov-profiler.c: Replace MEMMODEL_* macros by their __ATOMIC_*
          equivalent.
          * config/tilepro/atomic.c: Likewise and stop casting model to
          enum memmodel.
      
      From-SVN: r241121
      Thomas Preud'homme committed
  26. 09 Oct, 2016 1 commit
    • tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. · 8813a647
      	* tree-ssa.c (target_for_debug_bind, verify_phi_args,
      	ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
      	VAR_OR_FUNCTION_DECL_P macros.
      	* tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
      	chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
      	chkp_find_bounds_1): Likewise.
      	* ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
      	* hsa-gen.c (get_symbol_for_decl): Likewise.
      	* cgraphunit.c (check_global_declaration, analyze_functions,
      	handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
      	Likewise.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p,
      	canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
      	Likewise.
      	* tree.c (set_decl_section_name, copy_node_stat,
      	need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
      	merge_dllimport_decl_attributes, handle_dll_attribute,
      	decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
      	verify_type): Likewise.
      	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
      	find_explicit_erroneous_behavior): Likewise.
      	* sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
      	* ipa.c (process_references): Likewise.
      	* tree-chkp-opt.c (chkp_get_check_result): Likewise.
      	* varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
      	notice_global_symbol, assemble_variable, mark_decl_referenced,
      	build_constant_desc, output_constant_def_contents, do_assemble_alias,
      	make_decl_one_only, default_section_type_flags,
      	categorize_decl_for_section, default_encode_section_info): Likewise.
      	* trans-mem.c (requires_barrier): Likewise.
      	* gimple-expr.c (mark_addressable): Likewise.
      	* cfgexpand.c (add_scope_conflicts_1, expand_one_var,
      	expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
      	expand_debug_expr): Likewise.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* ubsan.c (instrument_bool_enum_load): Likewise.
      	* tree-pretty-print.c (print_declaration): Likewise.
      	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
      	* tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
      	* asan.c (asan_protect_global, instrument_derefs): Likewise.
      	* tree-into-ssa.c (rewrite_stmt, maybe_register_def,
      	pass_build_ssa::execute): Likewise.
      	* var-tracking.c (var_debug_decl, track_expr_p): Likewise.
      	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
      	Likewise.
      	* ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
      	Likewise.
      	* tree-inline.c (insert_debug_decl_map, remap_ssa_name,
      	can_be_nonlocal, remap_decls, copy_debug_stmt,
      	initialize_inlined_parameters, add_local_variables,
      	reset_debug_binding, replace_locals_op): Likewise.
      	* dse.c (can_escape): Likewise.
      	* ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
      	Likewise.
      	* tree-diagnostic.c (default_tree_printer): Likewise.
      	* tree-streamer-in.c (unpack_ts_decl_common_value_fields,
      	unpack_ts_decl_with_vis_value_fields,
      	lto_input_ts_decl_common_tree_pointers): Likewise.
      	* builtins.c (builtin_save_expr, fold_builtin_expect,
      	readonly_data_expr): Likewise.
      	* tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
      	create_variable_info_for, set_uids_in_ptset, visit_loadstore):
      	Likewise.
      	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
      	* gimplify.c (force_constant_size, gimplify_bind_expr,
      	gimplify_decl_expr, gimplify_var_or_parm_decl,
      	gimplify_compound_lval, gimplify_init_constructor,
      	gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
      	gimplify_type_sizes): Likewise.
      	* cgraphbuild.c (record_reference, record_type_list, mark_address,
      	mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
      	* tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
      	remove_unused_locals): Likewise.
      	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
      	ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
      	* function.c (instantiate_expr, instantiate_decls_1,
      	setjmp_vars_warning, add_local_decl): Likewise.
      	* alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
      	Likewise.
      	* tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
      	va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
      	optimize_va_list_gpr_fpr_size): Likewise.
      	* tree-nrv.c (pass_nrv::execute): Likewise.
      	* tsan.c (instrument_expr): Likewise.
      	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
      	* vtable-verify.c (verify_bb_vtables): Likewise.
      	* tree-dfa.c (ssa_default_def, set_ssa_default_def,
      	get_ref_base_and_extent): Likewise.
      	* toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
      	Likewise.
      	* tree-sra.c (static bool constant_decl_p, find_var_candidates,
      	analyze_all_variable_accesses): Likewise.
      	* tree-nested.c (get_nonlocal_debug_decl,
      	convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
      	note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
      	get_local_debug_decl, convert_local_omp_clauses,
      	convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
      	Likewise.
      	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
      	* stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
      	* dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
      	dbxout_symbol, dbxout_common_check): Likewise.
      	* expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
      	string_constant): Likewise.
      	* hsa.c (hsa_get_declaration_name): Likewise.
      	* passes.c (rest_of_decl_compilation): Likewise.
      	* tree-ssanames.c (make_ssa_name_fn): Likewise.
      	* tree-streamer-out.c (pack_ts_decl_common_value_fields,
      	pack_ts_decl_with_vis_value_fields,
      	write_ts_decl_common_tree_pointers): Likewise.
      	* stor-layout.c (place_field): Likewise.
      	* symtab.c (symtab_node::maybe_create_reference,
      	symtab_node::verify_base, symtab_node::make_decl_local,
      	symtab_node::copy_visibility_from,
      	symtab_node::can_increase_alignment_p): Likewise.
      	* dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
      	decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
      	fortran_common, add_location_or_const_value_attribute,
      	add_scalar_info, add_linkage_name, set_block_abstract_flags,
      	local_function_static, gen_variable_die, dwarf2out_late_global_decl,
      	optimize_one_addr_into_implicit_ptr,
      	optimize_location_into_implicit_ptr): Likewise.
      	* gimple-low.c (record_vars_into): Likewise.
      	* ipa-visibility.c (update_vtable_references): Likewise.
      	* tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
      	Likewise.
      	* lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
      	DFS::DFS_write_tree_body, write_symbol): Likewise.
      	* langhooks.c (lhd_warn_unused_global_decl,
      	lhd_set_decl_assembler_name): Likewise.
      	* attribs.c (decl_attributes): Likewise.
      	* except.c (output_ttype): Likewise.
      	* varpool.c (varpool_node::get_create, ctor_for_folding,
      	varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
      	* fold-const.c (fold_unary_loc): Likewise.
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge,
      	ipa_find_agg_cst_from_init): Likewise.
      	* omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
      	expand_omp_target, lower_omp_regimplify_p,
      	grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
      	find_link_var_op): Likewise.
      	* tree-chrec.c (chrec_contains_symbols): Likewise.
      	* tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
      	gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
      	execute_fixup_cfg): Likewise.
      
      From-SVN: r240900
      Jakub Jelinek committed
  27. 20 Aug, 2016 1 commit
    • Makefile.in: Add tree-vrp.h to GTFILES. · f90aa46c
      gcc/ChangeLog:
      
      2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	* Makefile.in: Add tree-vrp.h to GTFILES.
      	* gengtype.c (open_base_files): Add tree-vrp.h.
      	* asan.c: Add tree-vrp.h which now has the definition value_range_type.
      	* builtins.c: Likewise.
      	* fold-const.c: Likewise.
      	* gimple-builder.c: Likewise.
      	* gimple-laddress.c: Likewise.
      	* hsa-gen.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ssa.h: Likewise.
      	* targhooks.c: Liewise,
      	* tree-ssa-address.c: Likewise.
      	* tree-ssanames.h (value_range_type: Move to tree-vrp.h.
      	* tree-vrp.c (struct value_range): Move to tree-vrp.h
      	* tree-vrp.h: New file.
      
      From-SVN: r239638
      Kugan Vivekanandarajah committed
  28. 21 Jul, 2016 1 commit
  29. 11 Jul, 2016 1 commit
    • Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG. · 25b75a48
      2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
              * tree-core.h (tree_base::nothrow_flag): Adjust comment.
              (tree_type_common::lang_flag_7): New.
              (tree_type_common::spare): Reduce size.
              * tree.h (TYPE_ALIGN_OK): Remove.
              (TYPE_LANG_FLAG_7): New.
              (get_inner_reference): Adjust header.
              * print-tree.c (print_node): Adjust.
              * expr.c (get_inner_reference): Remove parameter keep_aligning.
              (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
              calls to get_inner_reference.
              (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
              handling of TYPE_ALIGN_OK.
              * builtins.c (get_object_alignment_2): Adjust call to
              get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
              * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
              TYPE_ALIGN_OK.
              * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
              * cfgexpand.c (expand_debug_expr): Likewise.
              * dbxout.c (dbxout_expand_expr): Likewise.
              * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
              loc_list_from_tree, fortran_common): Likewise.
              * fold-const.c (optimize_bit_field_compare,
              decode_field_reference, fold_unary_loc, fold_comparison,
              split_address_to_core_and_offset): Likewise.
              * gimple-laddress.c (execute): Likewise.
              * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
              * gimplify.c (gimplify_scan_omp_clauses): Likewise.
              * hsa-gen.c (gen_hsa_addr): Likewise.
              * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
              * tsan.c (instrument_expr): Likewise.
              * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
              * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
              * tree-affine.c (tree_to_aff_combination,
              get_inner_reference_aff): Adjust calls to get_inner_reference.
              * tree-data-ref.c (split_constant_offset_1,
              dr_analyze_innermost): Likewise.
              * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
              * tree-sra.c (ipa_sra_check_caller): Likewise.
              * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
              * tree-ssa-math-opts.c (find_bswap_or_nop_load,
              bswap_replace): Likewise.
              * tree-vect-data-refs.c (vect_check_gather,
              vect_analyze_data_refs): Likewise.
              * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
              * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
              TYPE_ALIGN_OK.
      
      ada:
      2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
              * gcc-interface/ada-tree.h (TYPE_ALIGN_OK): Define.
              * gcc-interface/trans.c (Attribute_to_gnu): Adjust call to
              get_inner_reference.
              * gcc-interface/utils2.c (build_unary_op): Likewise.
      
      From-SVN: r238210
      Bernd Edlinger committed
  30. 08 Apr, 2016 1 commit
  31. 04 Feb, 2016 1 commit
  32. 27 Jan, 2016 1 commit
    • re PR lto/69254 (ICE in streamer_get_builtin_tree when using -fsanitize=shift on… · 8f91e6e0
      re PR lto/69254 (ICE in streamer_get_builtin_tree when using -fsanitize=shift on the compile side only)
      
      	PR lto/69254
      	* sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
      	END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
      	* asan.c (DEF_BUILTIN_STUB): Temporarily define.
      	* tree-streamer-in.c: Include asan.h.
      	(streamer_get_builtin_tree): For builtins in sanitizer
      	range call initialize_sanitizer_builtins and retry.
      
      From-SVN: r232891
      Jakub Jelinek committed
  33. 04 Jan, 2016 1 commit
  34. 23 Nov, 2015 1 commit
    • libsanitizer merge from upstream r253555, compiler part. · b59e2a49
      gcc/
      
      	* opts.c (finish_options): Allow -fsanitize-recover=address for
      	userspace sanitization.
      	* asan.c (asan_expand_check_ifn): Redefine recover_p.
      	* doc/invoke.texi (fsanitize-recover): Update documentation.
      
      gcc/testsuite/
      
      	* c-c++-common/asan/halt_on_error-1.c: New test.
      	* c-c++-common/asan/halt_on_error-2.c: Likewise.
      
      From-SVN: r230741
      Max Ostapenko committed
  35. 08 Nov, 2015 1 commit