Skip to content

Merge upstream gcc-mirror/gcc into sourceryinstitute/gcc #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 349 commits into from
Oct 20, 2017

Conversation

rouson
Copy link
Member

@rouson rouson commented Oct 20, 2017

No description provided.

rguenth and others added 30 commits October 11, 2017 07:21
	* tree-scalar-evolution.c (get_scalar_evolution): Handle
	default-defs and types we do not want to analyze.
	(interpret_loop_phi): Replace unreachable code with an assert.
	(compute_scalar_evolution_in_loop): Remove and inline ...
	(analyze_scalar_evolution_1): ... here, replacing condition with
	what makes the intent clearer.  Remove handling of cases
	get_scalar_evolution now handles.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253629 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/81299
	* g++.dg/cpp1y/lambda-generic-ice7.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253630 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/82230
	* g++.dg/cpp1y/lambda-generic-ice8.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253631 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/80412
	* g++.dg/cpp1z/class-deduction44.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253632 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253634 138bc75d-0d04-0410-961f-82ee72b054a4
Similar to other architectures with IFUNC binutils/glibc support, this
patch enables the ifunc attribute for ARM GNU/Linux.  Although not
required for build master GLIBC, the intention is to allow refactor
its assembly implementation to C.

Tested compilation of glibc (in conjunction with a glibc patch to
support using the attribute on ARM) with build-many-glibcs.py (with
a patch to add a armv7 variant which enables multiarch).  I have
not run the GCC tests for ARM.

	* config.gcc (default_gnu_indirect_function): Default to yes for
	arm*-*-linux* with glibc.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253635 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-11  Martin Liska  <[email protected]>

	* c-c++-common/ubsan/ptr-overflow-sanitization-1.c: Scan
	optimized dump rather than assembly.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253636 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-11  Martin Liska  <[email protected]>

	PR sanitizer/82484
	* sanopt.c (sanitize_rewrite_addressable_params): Do not handle
	volatile arguments.
2017-10-11  Martin Liska  <[email protected]>

	PR sanitizer/82484
	* gcc.dg/asan/pr82484.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253637 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253638 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-11  Martin Liska  <[email protected]>

	* print-rtl.c (print_insn): Move declaration of idbuf
	to same scope as name.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253639 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-11  Martin Liska  <[email protected]>

	PR sanitizer/82490
	* opts.c (parse_no_sanitize_attribute): Do not use error_value
	variable.
	* opts.h (parse_no_sanitize_attribute): Remove last argument.
2017-10-11  Martin Liska  <[email protected]>

	PR sanitizer/82490
	* c-attribs.c (handle_no_sanitize_attribute): Report directly
	Wattributes warning.
2017-10-11  Martin Liska  <[email protected]>

	PR sanitizer/82490
	* c-c++-common/ubsan/attrib-5.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253640 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-loop-distribution.c (sort_partitions_by_post_order): Refine
	comment.
	(break_alias_scc_partitions): Update postorder number.

	gcc/testsuite
	* gcc.dg/tree-ssa/pr82472.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253641 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-11  Marc Glisse  <[email protected]>

gcc/
	* fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
	* match.pd: ... here.
	((T) X == (T) Y): Relax condition.

gcc/testsuite/
	* gcc.dg/Wstrict-overflow-7.c: Xfail.
	* gcc.dg/pragma-diag-3.c: Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253642 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
	* tree-core.h (tree_base): Add chrec_var union member.
	* tree.h (CHREC_VAR): Remove.
	(CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
	* tree-chrec.h (build_polynomial_chrec): Adjust.
	* tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
	* tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253643 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
	Properly call analyze_scalar_evolution with the loop of the stmt.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253644 138bc75d-0d04-0410-961f-82ee72b054a4
	* pretty-print.c [_WIN32] (colorize_init): Remove.  Use
	the generic version below instead.
	(should_colorize): Recognize Windows consoles as terminals
	for MinGW targets.
	* pretty-print.c [__MINGW32__] (write_all): New function.
	[__MINGW32__] (find_esc_head): Likewise.
	[__MINGW32__] (find_esc_terminator): Likewise.
	[__MINGW32__] (eat_esc_sequence): Likewise.
	[__MINGW32__] (mingw_ansi_fputs): New function that handles
	ANSI escape codes.
	(pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
	for MinGW targets.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253645 138bc75d-0d04-0410-961f-82ee72b054a4
	* config.gcc (i386, x86_64): Add extra objects.
	* i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
	(ix86_min_insn_size): Declare.
	(ix86_issue_rate): Declare.
	(ix86_adjust_cost): Declare.
	(ia32_multipass_dfa_lookahead): Declare.
	(ix86_macro_fusion_p): Declare.
	(ix86_macro_fusion_pair_p): Declare.
	(ix86_bd_has_dispatch): Declare.
	(ix86_bd_do_dispatch): Declare.
	(ix86_core2i7_init_hooks): Declare.
	(ix86_atom_sched_reorder): Declare.
	* i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
	(COSTS_N_BYTES): Move to x86-tune-costs.h.
	(DUMMY_STRINGOP_ALGS):x86-tune-costs.h.
	(rip_relative_addr_p): Rename to ...
	(ix86_rip_relative_addr_p): ... this one; export.
	(memory_address_length): Update.
	(ix86_issue_rate): Move to x86-tune-sched.c.
	(ix86_flags_dependent): Move to x86-tune-sched.c.
	(ix86_agi_dependent): Move to x86-tune-sched.c.
	(exact_dependency_1): Move to x86-tune-sched.c.
	(exact_store_load_dependency): Move to x86-tune-sched.c.
	(ix86_adjust_cost): Move to x86-tune-sched.c.
	(ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
	(ix86_macro_fusion_p): Move to x86-tune-sched.c.
	(ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
	(do_reorder_for_imul): Move to x86-tune-sched-atom.c.
	(swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
	(ix86_sched_reorder): Move to x86-tune-sched-atom.c.
	(core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
	(core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
	(min_insn_size): Rename to ...
	(ix86_min_insn_size): ... this one; export.
	(core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
	(core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
	(core2i7_first_cycle_multipass_backtrack): Move to x86-tune-sched-core.c.
	(core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
	(core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
	(ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
	(ix86_avoid_jump_mispredicts): Update.
	(TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
	(TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
	(TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
	(DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
	(MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
	(MAX_INSN): Move to ix86-tune-sched-bd.c.
	(MAX_IMM): Move to ix86-tune-sched-bd.c.
	(MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
	(MAX_IMM_32): Move to ix86-tune-sched-bd.c.
	(MAX_IMM_64): Move to ix86-tune-sched-bd.c.
	(MAX_LOAD): Move to ix86-tune-sched-bd.c.
	(MAX_STORE): Move to ix86-tune-sched-bd.c.
	(BIG): Move to ix86-tune-sched-bd.c.
	(enum dispatch_group): Move to ix86-tune-sched-bd.c.
	(enum insn_path): Move to ix86-tune-sched-bd.c.
	(get_mem_group): Move to ix86-tune-sched-bd.c.
	(is_cmp): Move to ix86-tune-sched-bd.c.
	(dispatch_violation): Move to ix86-tune-sched-bd.c.
	(is_branch): Move to ix86-tune-sched-bd.c.
	(is_prefetch): Move to ix86-tune-sched-bd.c.
	(init_window): Move to ix86-tune-sched-bd.c.
	(allocate_window): Move to ix86-tune-sched-bd.c.
	(init_dispatch_sched): Move to ix86-tune-sched-bd.c.
	(is_end_basic_block): Move to ix86-tune-sched-bd.c.
	(process_end_window): Move to ix86-tune-sched-bd.c.
	(allocate_next_window): Move to ix86-tune-sched-bd.c.
	(find_constant): Move to ix86-tune-sched-bd.c.
	(get_num_immediates): Move to ix86-tune-sched-bd.c.
	(has_immediate): Move to ix86-tune-sched-bd.c.
	(get_insn_path): Move to ix86-tune-sched-bd.c.
	(get_insn_group): Move to ix86-tune-sched-bd.c.
	(count_num_restricted): Move to ix86-tune-sched-bd.c.
	(fits_dispatch_window): Move to ix86-tune-sched-bd.c.
	(add_insn_window): Move to ix86-tune-sched-bd.c.
	(add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
	(debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
	(debug_dispatch_window): Move to ix86-tune-sched-bd.c.
	(debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
	(debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
	(do_dispatch): Move to ix86-tune-sched-bd.c.
	(has_dispatch): Move to ix86-tune-sched-bd.c.
	* i386/t-i386: Add new object files.
	* i386/x86-tune-costs.h: New file.
	* i386/x86-tune-sched-atom.c: New file.
	* i386/x86-tune-sched-bd.c: New file.
	* i386/x86-tune-sched-core.c: New file.
	* i386/x86-tune-sched.c: New file.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253646 138bc75d-0d04-0410-961f-82ee72b054a4
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00582.html
	* tree.h (DECL_ASSEMBLER_NAME_RAW): New.
	(SET_DECL_ASSEMBLER_NAME): Use it.
	(DECL_ASSEMBLER_NAME_SET_P): Likewise.
	(COPY_DECL_ASSEMBLER_NAME): Likewise.
	* tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.

	lto/
	* lto.c (mentions_vars_p_decl_with_vis): Use
	DECL_ASSEMBLER_NAME_RAW.
	(lto_fixup_prevailing_decls): Likewise.

	cp
	* decl2.c (struct mangled_decl_hash): Use DECL_ASSEMBLER_NAME_RAW.
	(record_mangling): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253647 138bc75d-0d04-0410-961f-82ee72b054a4
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00582.html
	* tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
	HAS_DECL_ASSEMBLER_NAME_P.
	* gimple-expr.c (gimple_decl_printable_name: Check
	HAS_DECL_ASSEMBLER_NAME_P too.
	* ipa-utils.h (type_in_anonymous_namespace_p): Check
	DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
	(odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
	* passes.c (rest_of_decl_compilation): Check
	HAS_DECL_ASSEMBLER_NAME_P too.
	* recog.c (verify_changes): Likewise.
	* tree-pretty-print.c (dump_decl_name): Likewise.
	* tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.

	c/
	* c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253649 138bc75d-0d04-0410-961f-82ee72b054a4
	address computation of end of complex_attrib_array_types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253650 138bc75d-0d04-0410-961f-82ee72b054a4
	(safe_scale_64bit): New inline.
	(profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
	* profile-count.c: Include wide-int.h
	(slow_safe_scale_64bit): New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253652 138bc75d-0d04-0410-961f-82ee72b054a4
	Do not use float_operator operator predicate.
	(*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
	* config/i386/predicates.md (float_operator): Remove predicate.

	* config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
	(*jccxf_i387): Ditto.
	(*jcc<mode>_i387): Ditto.
	(*jccu<mode>_i387): Ditto.
	(*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
	(*jcc_*_i387 splitters): Remove.
	* config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
	* config/i386/i386.c (ix86_split_fp_branch): Remove.
	* config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
	Remove predicate.

testsuite/ChangeLog:

	* gcc.target/i386/387-ficom-1.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253653 138bc75d-0d04-0410-961f-82ee72b054a4
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00693.html
	gcc/
	* incpath.h (enum incpath_kind): Name enum, prefix values.
	(add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
	* incpath.c (heads, tails): Use INC_MAX.
	(add_env_var_paths, add_standard_paths): Use incpath_kind.
	(merge_include_chains, split_quote_chain,
	register_include_chains): Update incpath_kind names.
	(add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
	* config/darwin-c.c (add_system_framework_path): Update incpath_kind
	names.
	(add_framework_path, darwin_register_objc_includes): Likewise.
	* config/vms/vms-c.c (vms_c_register_includes): Likewise.
	gcc/c-family/
	* c-opts.c (add_prefixed_path): Change chain to incpath_kind.
	(c_common_handle_option): Update incpath_kind names.
	gcc/fortran/
	* cpp.c (gfc_cpp_add_include_path): Update incpath_e names.
	(gfc_cpp_add_include_path_after): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253654 138bc75d-0d04-0410-961f-82ee72b054a4
	PR sanitizer/82353
	* lra.c (collect_non_operand_hard_regs): Don't ignore operator
	locations.
	* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
	(make_hard_regno_born, make_hard_regno_dead): Update
	bb_killed_pseudos and bb_gen_pseudos.

2017-10-11  Vladimir Makarov  <[email protected]>

	PR sanitizer/82353
	* gcc.target/i386/i386.exp (tests): Permit '.C' extension.
	* gcc.target/i386/pr82353.C: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253656 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-11  Qing Zhao  <[email protected]>

	PR target/81422
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
	Check whether the dest is REG before adding REG_EQUIV note.

/gcc/testsuite
2017-10-11  Qing Zhao  <[email protected]>

	PR target/81422
      	* gcc.target/aarch64/pr81422.C: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253657 138bc75d-0d04-0410-961f-82ee72b054a4
	* g++.dg/cpp1y/pr80194.C: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253658 138bc75d-0d04-0410-961f-82ee72b054a4
	* g++.dg/cpp1y/pr78523.C: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253659 138bc75d-0d04-0410-961f-82ee72b054a4
	* g++.dg/lto/pr82414_0.C: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253660 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc.dg/vect/pr78558.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253661 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc.c-torture/execute/pr80421.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253662 138bc75d-0d04-0410-961f-82ee72b054a4
pmderodat and others added 29 commits October 19, 2017 23:12
	* exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ"
	should be "T".  Handle case of a subtype of a class-wide type.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253916 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253919 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/82308
	* g++.dg/cpp1z/class-deduction45.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253920 138bc75d-0d04-0410-961f-82ee72b054a4
-fdelete-null-pointer-checks.
* doc/invoke.text (-fdelete-null-pointer-checks): Document that.

* lib/target-supports.exp (check_effective_target_keeps_null_pointer_checks):
Add msp430 to the list.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253921 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
	(OPTION_MASK_ISA_GFNI_UNSET): New.
	(ix86_handle_option): Handle OPT_mgfni.
	* config/i386/cpuid.h (bit_GFNI): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
	* config/i386/i386.c (ix86_target_string): Add -mgfni.
	(ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
	* config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
	* config/i386/i386.opt: Add mgfni.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253922 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/sse.md (*andnot<mode>3,
	<mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
	(=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
	and 256-bit vectors, the (=x,x,xm) alternative and when mask is
	not applied use empty suffix even for TARGET_AVX512VL.
	* config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
	is applied, supply evex,evex or evex,evex,evex instead of just
	evex.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253923 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
	New mode iterators.
	(<shift_insn><mode>3<mask_name>): Change the last of the 3
	define_insns for logical vector shifts to use VI248_AVX512BW
	iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
	condition, useless isa and prefix attributes.  Change the first
	2 of these define_insns to ...
	(<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
	define_insn for avx512vl.
	(<shift_insn><mode>3): ... and this, new define_insn without
	masking for non-avx512vl.

	* gcc.target/i386/avx-pr82370.c: New test.
	* gcc.target/i386/avx2-pr82370.c: New test.
	* gcc.target/i386/avx512f-pr82370.c: New test.
	* gcc.target/i386/avx512bw-pr82370.c: New test.
	* gcc.target/i386/avx512vl-pr82370.c: New test.
	* gcc.target/i386/avx512vlbw-pr82370.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253924 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
	for -fsanitize=thread link of executables.
	(LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
	link of executables.

	* lsan/lsan.h (__lsan_init): Add SANITIZER_INTERFACE_ATTRIBUTE.
	* lsan/Makefile.am (nodist_toolexeclib_HEADERS): Add
	liblsan_preinit.o.
	(lsan_files): Remove lsan_preinit.cc.
	(liblsan_preinit.o): New rule.
	* lsan/Makefile.in: Regenerated.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253925 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-cfg.c (pass_warn_function_return::execute): In noreturn
	functions when optimizing replace GIMPLE_RETURN stmts with
	calls to __builtin_unreachable ().

	* gcc.dg/tree-ssa/noreturn-1.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253926 138bc75d-0d04-0410-961f-82ee72b054a4
	* configure: Regenerate.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253928 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-20  Tom de Vries  <[email protected]>

	* gcc.dg/tree-ssa/ldist-27.c: Remove dg-require-stack-size.
	(main): Move s ...
	(s): ... here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253929 138bc75d-0d04-0410-961f-82ee72b054a4
	* graphite-isl-ast-to-gimple.c
	(translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
	Remove return value and simplify, dump copied stmt after lhs
	adjustment.
	(translate_isl_ast_to_gimple::translate_isl_ast_node_user):
	Reduce dump verbosity.
	(gsi_insert_earliest): Likewise.
	(translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
	* graphite.c (print_global_statistics): Adjust dumping.
	(print_graphite_scop_statistics): Likewise.
	(print_graphite_statistics): Do not dump loops here.
	(graphite_transform_loops): But here.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253930 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/82603
	* tree-if-conv.c (predicate_mem_writes): Make sure to only
	remove false predicated stores.

	* gcc.dg/torture/pr82603.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253933 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253934 138bc75d-0d04-0410-961f-82ee72b054a4
…ic FPU selection

Libatomic builds a few functions for Arm with an explicit -march
option.  This option does not specify an FPU, which can lead to
problems when targeting a hard-float or softfp environment since the
architecture appears to be incompatible with the selected ABI.

The fix is simple enough, just add +fp (the minimum floating point
option) to the architecture.  We don't use anything from the FP
architecture, so it shouldn't really change anything; and if we are
building for -mfloat-abi=soft the canonicalization process will remove
the unnecessary fp attributes anyway.

	* Makefile.am: (IFUNC_OPTIONS): Set the architecture to
	-march=armv7-a+fp on Linux/Arm.
	* Makefile.in: Regenerated.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253935 138bc75d-0d04-0410-961f-82ee72b054a4
https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf

A proposal is to introduce a target independent flag
-fcf-protection=[none|branch|return|full] with a semantic to
instrument a code to control validness or integrity of control-flow
transfers using jump and call instructions. The main goal is to detect
and block a possible malware execution through transfer the execution
to unknown target address. Implementation could be either software or
target based. Any target platforms can provide their implementation
for instrumentation under this option.

The compiler should instrument any control-flow transfer points in a
program (ex. call/jmp/ret) as well as any landing pads, which are
targets of control-flow transfers.

A new 'nocf_check' attribute is introduced to provide hand tuning
support. The attribute directs the compiler to skip a call to a
function and a function's landing pad from instrumentation. The
attribute can be used for function and pointer to function types,
otherwise it will be ignored.

Currently all platforms except i386 will report the error and do no
instrumentation. i386 will provide the implementation based on a
specification published by Intel for a new technology called
Control-flow Enforcement Technology (CET).

gcc/c-family/
	* c-attribs.c (handle_nocf_check_attribute): New function.
	(c_common_attribute_table): Add 'nocf_check' handling.

gcc/c/
	* gimple-parser.c: Add second argument NULL to
	gimple_build_call_from_tree.

gcc/
	* attrib.c (comp_type_attributes): Check nocf_check attribute.
	* cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
	call insn.
	* combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
	* common.opt: Add fcf-protection flag.
	* emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
	* flag-types.h: Add enum cf_protection_level.
	* gimple.c (gimple_build_call_from_tree): Add second parameter.
	Add 'nocf_check' attribute propagation to gimple call.
	* gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
	(gimple_build_call_from_tree): Update prototype.
	(gimple_call_nocf_check_p): New function.
	(gimple_call_set_nocf_check): Likewise.
	* gimplify.c: Add second argument to gimple_build_call_from_tree.
	* ipa-icf.c: Add nocf_check attribute in statement hash.
	* recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
	* reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
	* toplev.c (process_options): Add flag_cf_protection handling.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253936 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/82473
	* tree-vect-loop.c (vectorizable_reduction): Properly get at
	the largest input type.

	* gcc.dg/torture/pr82473.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253937 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/doc/
	* extend.texi: Add 'nocf_check' documentation.
	* gimple.texi: Add second parameter to gimple_build_call_from_tree.
	* invoke.texi: Add -fcf-protection documentation.
	* rtl.texi: Add REG_CALL_NOTRACK documenation.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253938 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
	<avx512>_fmadd_<mode>_mask3<round_name>,
	<avx512>_fmsub_<mode>_mask<round_name>,
	<avx512>_fmsub_<mode>_mask3<round_name>,
	<avx512>_fnmadd_<mode>_mask<round_name>,
	<avx512>_fnmadd_<mode>_mask3<round_name>,
	<avx512>_fnmsub_<mode>_mask<round_name>,
	<avx512>_fnmsub_<mode>_mask3<round_name>,
	<avx512>_fmaddsub_<mode>_mask<round_name>,
	<avx512>_fmaddsub_<mode>_mask3<round_name>,
	<avx512>_fmsubadd_<mode>_mask<round_name>,
	<avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
	(*vec_widen_umult_even_v16si<mask_name>,
	*vec_widen_smult_even_v16si<mask_name>): Likewise.
	(<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253939 138bc75d-0d04-0410-961f-82ee72b054a4
	* sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate
	that an allocator came from a b-i-p return statement.
	* exp_ch4.adb (Expand_Allocator_Expression): Avoid adjusting the return
	object of a nonlimited build-in-place function call.
	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Set the
	Alloc_For_BIP_Return flag on generated allocators.
	* sem_ch5.adb (Analyze_Assignment): Move Assert to where it can't fail.
	If the N_Assignment_Statement has been transformed into something else,
	then Should_Transform_BIP_Assignment won't work.
	* exp_ch3.adb (Expand_N_Object_Declaration): A previous revision said,
	"Remove Adjust if we're building the return object of an extended
	return statement in place." Back out that part of the change, because
	the Alloc_For_BIP_Return flag is now used for that.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253940 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-20  Bob Duff  <[email protected]>

	* exp_aggr.adb (Initialize_Array_Component): Avoid adjusting a
	component of an array aggregate if it is initialized by a
	build-in-place function call.
	* exp_ch6.adb (Is_Build_In_Place_Result_Type): Use -gnatd.9 to disable
	bip for nonlimited types.
	* debug.adb: Document -gnatd.9.

2017-10-20  Bob Duff  <[email protected]>

	* sem_ch12.adb: Remove redundant setting of Parent.

2017-10-20  Eric Botcazou  <[email protected]>

	* sem_ch4.adb (Find_Concatenation_Types): Filter out operators if one
	of the operands is a string literal.

2017-10-20  Bob Duff  <[email protected]>

	* einfo.ads: Comment fix.

2017-10-20  Clement Fumex  <[email protected]>

	* switch-c.adb: Remove -gnatwm from the switches triggered by -gnateC.

2017-10-20  Ed Schonberg  <[email protected]>

	* sem_dim.adb (Extract_Power): Accept dimension values that are not
	non-negative integers when the dimensioned base type is an Integer
	type.

gcc/testsuite/

2017-10-20  Ed Schonberg  <[email protected]>

	* gnat.dg/dimensions.adb, gnat.dg/dimensions.ads: New testcase.






git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253941 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-20  Yannick Moy  <[email protected]>

	* sem_dim.adb (Analyze_Dimension_Binary_Op): Accept with a warning to
	compare a dimensioned expression with a literal.
	(Dim_Warning_For_Numeric_Literal): Do not issue a warning for the
	special value zero.
	* doc/gnat_ugn/gnat_and_program_execution.rst: Update description of
	dimensionality system in GNAT.
	* gnat_ugn.texi: Regenerate.

2017-10-20  Yannick Moy  <[email protected]>

	* sem_ch6.adb (Analyze_Expression_Function.Freeze_Expr_Types): Remove
	inadequate silencing of errors.
	* sem_util.adb (Check_Part_Of_Reference): Do not issue an error when
	checking the subprogram body generated from an expression function,
	when this is done as part of the preanalysis done on expression
	functions, as the subprogram body may not yet be attached in the AST.
	The error if any will be issued later during the analysis of the body.
	(Is_Aliased_View): Trivial rewrite with Is_Formal_Object.

2017-10-20  Arnaud Charlet  <[email protected]>

	* sem_ch8.adb (Update_Chain_In_Scope): Add missing [-gnatwu] marker for
	warning on ineffective use clause.

2017-10-20  Eric Botcazou  <[email protected]>

	* exp_ch11.ads (Warn_If_No_Local_Raise): Declare.
	* exp_ch11.adb (Expand_Exception_Handlers): Use Warn_If_No_Local_Raise
	to issue the warning on the absence of local raise.
	(Possible_Local_Raise): Do not issue the warning for Call_Markers.
	(Warn_If_No_Local_Raise): New procedure to issue the warning on the
	absence of local raise.
	* sem_elab.adb: Add with and use clauses for Exp_Ch11.
	(Record_Elaboration_Scenario): Call Possible_Local_Raise in the cases
	where a scenario could give rise to raising Program_Error.
	* sem_elab.adb: Typo fixes.
	* fe.h (Warn_If_No_Local_Raise): Declare.
	* gcc-interface/gigi.h (get_exception_label): Change return type.
	* gcc-interface/trans.c (gnu_constraint_error_label_stack): Change to
	simple vector of Entity_Id.
	(gnu_storage_error_label_stack): Likewise.
	(gnu_program_error_label_stack): Likewise.
	(gigi): Adjust to above changes.
	(Raise_Error_to_gnu): Likewise.
	(gnat_to_gnu) <N_Goto_Statement>: Set TREE_USED on the label.
	(N_Push_Constraint_Error_Label): Push the label onto the stack.
	(N_Push_Storage_Error_Label): Likewise.
	(N_Push_Program_Error_Label): Likewise.
	(N_Pop_Constraint_Error_Label): Pop the label from the stack and issue
	a warning on the absence of local raise.
	(N_Pop_Storage_Error_Label): Likewise.
	(N_Pop_Program_Error_Label): Likewise.
	(push_exception_label_stack): Delete.
	(get_exception_label): Change return type to Entity_Id and adjust.
	* gcc-interface/utils2.c (build_goto_raise): Change type of first
	parameter to Entity_Id and adjust.  Set TREE_USED on the label.
	(build_call_raise): Adjust calls to get_exception_label and also
	build_goto_raise.
	(build_call_raise_column): Likewise.
	(build_call_raise_range): Likewise.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (-gnatw.x):
	Document actual default behavior.

2017-10-20  Piotr Trojanek  <[email protected]>

	* einfo.ads: Minor consistent punctuation in comment.  All numbered
	items in the comment of Is_Internal are now terminated with a period.

2017-10-20  Piotr Trojanek  <[email protected]>

	* exp_util.adb (Build_Temporary): Mark created temporary entity as
	internal.

2017-10-20  Piotr Trojanek  <[email protected]>

	* sem_type.adb (In_Generic_Actual): Simplified.

2017-10-20  Justin Squirek  <[email protected]>

	* sem_ch12.adb (Check_Formal_Package_Instance): Add sanity check to
	verify a renaming exists for a generic formal before comparing it to
	the actual as defaulted formals will not have a renamed_object.

2017-10-20  Javier Miranda  <[email protected]>

	* exp_ch6.adb (Replace_Returns): Fix wrong management of
	N_Block_Statement nodes.

gcc/testsuite/

2017-10-20  Justin Squirek  <[email protected]>

	* gnat.dg/default_pkg_actual.adb, gnat.dg/default_pkg_actual2.adb: New
	testcases.





git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253945 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253946 138bc75d-0d04-0410-961f-82ee72b054a4
	* sinfo.ads: Fix a comment typo.

2017-10-20  Eric Botcazou  <[email protected]>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (-flto): Add
	warning against usage in conjunction with -gnatn.
	(-fdump-xref): Delete entry.
	* doc/gnat_ugn/gnat_utility_programs.rst (--ext): Remove mention of
	-fdump-xref switch.
	* gnat_ugn.texi: Regenerate.

2017-10-20  Hristian Kirtchev  <[email protected]>

	* sem_type.adb, exp_util.adb, sem_util.adb, sem_dim.adb, sem_elab.adb:
	Minor reformatting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253947 138bc75d-0d04-0410-961f-82ee72b054a4
2017-10-20  Doug Rupp  <[email protected]>

	* libgnarl/s-osinte__linux.ads (Relative_Timed_Wait): Add variable
	needed for using monotonic clock.
	* libgnarl/s-taprop__linux.adb: Revert previous monotonic clock
	changes.
	* libgnarl/s-taprop__linux.adb, s-taprop__posix.adb: Unify and factor
	out monotonic clock related functions body.
	(Timed_Sleep, Timed_Delay, Montonic_Clock, RT_Resolution,
	Compute_Deadline): Move to...
	* libgnarl/s-tpopmo.adb: ... here. New separate package body.

2017-10-20  Ed Schonberg  <[email protected]>

	* sem_util.adb (Is_Controlling_Limited_Procedure): Handle properly the
	case where the controlling formal is an anonymous access to interface
	type.
	* exp_ch9.adb (Extract_Dispatching_Call): If controlling actual is an
	access type, handle properly the the constructed dereference that
	designates the object used in the rewritten synchronized call.
	(Parameter_Block_Pack): If the type of the actual is by-copy, its
	generated declaration in the parameter block does not need an
	initialization even if the type is a null-excluding access type,
	because it will be initialized with the value of the actual later on.
	(Parameter_Block_Pack): Do not add controlling actual to parameter
	block when its type is by-copy.

2017-10-20  Justin Squirek  <[email protected]>

	* sem_ch8.adb (Update_Use_Clause_Chain): Add sanity check to verify
	scope stack traversal into the context clause.

gcc/testsuite/

2017-10-20  Ed Schonberg  <[email protected]>

	* gnat.dg/sync_iface_call.adb, gnat.dg/sync_iface_call_pkg.ads,
	gnat.dg/sync_iface_call_pkg2.adb, gnat.dg/sync_iface_call_pkg2.ads:
	New testcase.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253948 138bc75d-0d04-0410-961f-82ee72b054a4
	* c-c++-common/fcf-protection-1.c: New test.
	* c-c++-common/fcf-protection-2.c: Likewise.
	* c-c++-common/fcf-protection-3.c: Likewise.
	* c-c++-common/fcf-protection-4.c: Likewise.
	* c-c++-common/fcf-protection-5.c: Likewise.
	* c-c++-common/attr-nocf-check-1.c: Likewise.
	* c-c++-common/attr-nocf-check-2.c: Likewise.
	* c-c++-common/attr-nocf-check-3.c: Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253949 138bc75d-0d04-0410-961f-82ee72b054a4
	* include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
	* testsuite/18_support/byte/requirements.cc: Check macro.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253952 138bc75d-0d04-0410-961f-82ee72b054a4
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01376.html
	* class.c (layout_class_type): Cleanup as-base creation, determine
	mode here.
	(finish_struct_1): ... not here.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253954 138bc75d-0d04-0410-961f-82ee72b054a4
    
    Also fix 64-bit DWARF to read a 64-bit abbrev offset in the
    compilation unit.
    
    This is a backport of https://golang.org/cl/71171, which will be in
    the Go 1.10 release, to the gofrontend copy. Doing it now because AIX
    is pretty much the only system that uses 64-bit DWARF.
    
    Reviewed-on: https://go-review.googlesource.com/72250


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253955 138bc75d-0d04-0410-961f-82ee72b054a4
@rouson rouson merged commit 7204ca4 into sourceryinstitute:master Oct 20, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant