156724 Commits

Author SHA1 Message Date
Ian Lance Taylor
3ff1b2b0a9 runtime: fix issues on AIX about uintptr(_t)
Reviewed-on: https://go-review.googlesource.com/69891

From-SVN: r253664
2017-10-11 21:16:49 +00:00
Uros Bizjak
07a5fe52c5 i386.c (ix86_canonicalize_comparison): New function.
* config/i386/i386.c (ix86_canonicalize_comparison): New function.
	(TARGET_CANONICALIZE_COMPARISON): Define.

testsuite/ChangeLog:

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

From-SVN: r253663
2017-10-11 23:15:59 +02:00
Jakub Jelinek
ca38a07b06 re PR middle-end/80421 (Case dispatch is scrambled in switch-statement)
PR middle-end/80421
	* gcc.c-torture/execute/pr80421.c: New test.

From-SVN: r253662
2017-10-11 22:51:08 +02:00
Jakub Jelinek
69c328ec60 re PR tree-optimization/78558 (Incorrect loop optimization leads to crash)
PR tree-optimization/78558
	* gcc.dg/vect/pr78558.c: New test.

From-SVN: r253661
2017-10-11 22:50:46 +02:00
Jakub Jelinek
1d5b9dd5c6 re PR c++/82414 (Issue with ODR/LTO in G++)
PR c++/82414
	* g++.dg/lto/pr82414_0.C: New test.

From-SVN: r253660
2017-10-11 22:50:27 +02:00
Jakub Jelinek
fbb0add7c6 re PR c++/78523 (ICE on valid lambda code with implicit capture)
PR c++/78523
	* g++.dg/cpp1y/pr78523.C: New test.

From-SVN: r253659
2017-10-11 22:50:07 +02:00
Jakub Jelinek
666a1c32f5 re PR c++/80194 (ICE with local constant referenced by a lambda expression)
PR c++/80194
	* g++.dg/cpp1y/pr80194.C: New test.

From-SVN: r253658
2017-10-11 22:49:46 +02:00
Qing Zhao
241dbd9d68 re PR target/81422 ([aarch64] internal compiler error: in update_equiv_regs, at ira.c:3425)
/gcc
2017-10-11  Qing Zhao  <qing.zhao@oracle.com>

	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  <qing.zhao@oracle.com>

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

From-SVN: r253657
2017-10-11 19:43:54 +00:00
Vladimir Makarov
6dcb9e910b re PR sanitizer/82353 (runtime ubsan crash)
2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>

	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  <vmakarov@redhat.com>

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

From-SVN: r253656
2017-10-11 19:35:48 +00:00
Nathan Sidwell
b90c933812 [PATCH] Include path enumeration
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.

From-SVN: r253654
2017-10-11 18:09:59 +00:00
Uros Bizjak
42851ff81d i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): Do not use float_operator operator predicate.
* config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
	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.

From-SVN: r253653
2017-10-11 20:00:55 +02:00
Jan Hubicka
9588ea78db profile-count.h (slow_safe_scale_64bit): New function.
* profile-count.h (slow_safe_scale_64bit): New function.
	(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.

From-SVN: r253652
2017-10-11 17:37:18 +00:00
Jeff Law
278a84349a struct-layout-1_generate.c (generate_fields): Fix typo in address computation of end of complex_attrib_array_types.
* gcc.dg/struct-layout-1_generate.c (generate_fields): Fix typo in
	address computation of end of complex_attrib_array_types.

From-SVN: r253650
2017-10-11 11:21:53 -06:00
Nathan Sidwell
a92f67261a [PATCH] DECL_ASSEMBLER_NAME and friends
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.

From-SVN: r253649
2017-10-11 16:35:18 +00:00
Nathan Sidwell
4e7d02606e [PATCH] DECL_ASSEMBLER_NAME and friends
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.

From-SVN: r253647
2017-10-11 15:33:51 +00:00
Jan Hubicka
64766e8dc7 config.gcc (i386, x86_64): Add extra objects.
* 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.

From-SVN: r253646
2017-10-11 15:17:23 +00:00
Liu Hao
db0d1bae4a pretty-print.c [_WIN32] (colorize_init): Remove.
2017-10-11  Liu Hao  <lh_mouse@126.com>

	* 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.

From-SVN: r253645
2017-10-11 13:34:44 +00:00
Richard Biener
85866209d4 tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Properly call analyze_scalar_evolution with the loop of the stmt.
2017-10-11  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
	Properly call analyze_scalar_evolution with the loop of the stmt.

From-SVN: r253644
2017-10-11 13:20:59 +00:00
Richard Biener
d2ec027749 tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
2017-10-11  Richard Biener  <rguenther@suse.de>

	* 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.

From-SVN: r253643
2017-10-11 13:18:46 +00:00
Marc Glisse
6358a676c3 X+Y < X iff Y<0 moved to match.pd
2017-10-11  Marc Glisse  <marc.glisse@inria.fr>

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.

From-SVN: r253642
2017-10-11 13:18:06 +00:00
Bin Cheng
b4ec1d31a5 re PR tree-optimization/82472 (ICE in generate_code_for_partition, at tree-loop-distribution.c:1145)
PR tree-optimization/82472
	* 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.

From-SVN: r253641
2017-10-11 13:04:05 +00:00
Martin Liska
3a266bcd81 Do not error for no_sanitize attributes (PR sanitizer/82490).
2017-10-11  Martin Liska  <mliska@suse.cz>

	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  <mliska@suse.cz>

	PR sanitizer/82490
	* c-attribs.c (handle_no_sanitize_attribute): Report directly
	Wattributes warning.
2017-10-11  Martin Liska  <mliska@suse.cz>

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

From-SVN: r253640
2017-10-11 12:31:59 +00:00
Martin Liska
050dcb6ad8 Fix use-after-scope error.
2017-10-11  Martin Liska  <mliska@suse.cz>

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

From-SVN: r253639
2017-10-11 12:30:03 +00:00
Martin Liska
ed89e76a35 Revert last commit.
From-SVN: r253638
2017-10-11 12:29:13 +00:00
Martin Liska
78188a05d0 Do not handled volatile arguments (PR sanitizer/82484).
2017-10-11  Martin Liska  <mliska@suse.cz>

	PR sanitizer/82484
	* sanopt.c (sanitize_rewrite_addressable_params): Do not handle
	volatile arguments.
2017-10-11  Martin Liska  <mliska@suse.cz>

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

From-SVN: r253637
2017-10-11 12:24:44 +00:00
Martin Liska
b1a651a25a Fix a test-case for Darwin.
2017-10-11  Martin Liska  <mliska@suse.cz>

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

From-SVN: r253636
2017-10-11 12:22:48 +00:00
Adhemerval Zanella
d71031ff62 Enable ifunc attribute by default for ARM GNU/Linux
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.

From-SVN: r253635
2017-10-11 12:14:07 +00:00
Nathan Sidwell
dbd282bb38 * g++.dg/cpp/string-3.C: Fix dg-final.
From-SVN: r253634
2017-10-11 11:58:05 +00:00
Paolo Carlini
08f0a7396e re PR c++/80412 ([c++17] crash with class template deduction guide and inheritance)
2017-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80412
	* g++.dg/cpp1z/class-deduction44.C: New.

From-SVN: r253632
2017-10-11 10:01:23 +00:00
Paolo Carlini
1d14f58c1f re PR c++/82230 (ICE: in tsubst, at cp/pt.c:13686 when binding lambda to variable inside a generic lambda inside a template member function inside a template class)
2017-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82230
	* g++.dg/cpp1y/lambda-generic-ice8.C: New.

From-SVN: r253631
2017-10-11 09:04:29 +00:00
Paolo Carlini
99f1498eed re PR c++/81299 (Spurious "set but not used" warning with constexpr variable)
2017-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81299
	* g++.dg/cpp1y/lambda-generic-ice7.C: New.

From-SVN: r253630
2017-10-11 08:50:15 +00:00
Richard Biener
5355943cc1 tree-scalar-evolution.c (get_scalar_evolution): Handle default-defs and types we do not want to analyze.
2017-10-11  Richard Biener  <rguenther@suse.de>

	* 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.

From-SVN: r253629
2017-10-11 07:21:05 +00:00
James E Wilson
e9593da8cc Allow 2 insns from sched group to issue in same cycle, if no stalls needed.
gcc/
	PR rtl-optimization/81434
	* haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
	comment for main loop.  In sched_group_found if, also add checks for
	pass and min_cost_group.

From-SVN: r253628
2017-10-10 20:23:41 -07:00
GCC Administrator
9ef8d30e92 Daily bump.
From-SVN: r253627
2017-10-11 00:16:14 +00:00
Segher Boessenkool
ca158af378 rs6000: insn_cost
This adds an implementation of the insn_cost hook to rs6000.

This implementations is very minimal (so far).  It is mostly based on
how many machine instructions are generated by an RTL insn, and it also
looks at the instruction type.  Floating point insns are costed as if
all machine instructions it generates are floating point; the other
insns are treated as if all but one are integer insns (and one is the
specified type).  Load instructions are treated as costing twice as
much, and load locked and sync insns as three times as much (just like
the original costs), and integer div and mul are handled as well.

Each define_insn (etc.) can set a "cost" attribute to override this
general cost.  With optimization for size, the cost is set equal to the
value of the "length" attribute.

With this, the majority of cost differences between old and new are
where the old was wrong.  Also, benchmarks show a slight win (if
anything).  Some refinements are obviously needed.


	* config/rs6000/rs6000.c (TARGET_INSN_COST): New.
	(rs6000_insn_cost): New function.
	* config/rs6000/rs6000.md (cost): New attribute.

From-SVN: r253624
2017-10-11 02:11:23 +02:00
Nathan Sidwell
7cd6ea64f8 [C++ PATCH] hash-table for extern-c fns.
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00614.html
	* name-lookup.c (extern_c_fns): Rename to ...
	(extern_c_decls): ... here.
	(check_extern_c_conflict, extern_c_linkage_bindings): Update.
	(do_pushdecl): Check extern-c fns and vars.

	* g++.dg/lookup/extern-c-redecl6.C: New.
	* g++.dg/lookup/extern-c-hidden.C: Adjust diagnostics.
	* g++.dg/lookup/extern-c-redecl.C: Likewise.
	* g++.old-deja/g++.other/using9.C: Likewise.

From-SVN: r253622
2017-10-10 20:50:26 +00:00
Paolo Carlini
507ea98d58 re PR c++/78006 (Segmentation fault with 'using' and generic lambda trailing return types)
2017-10-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/78006
	* g++.dg/cpp1y/auto-fn40.C: New.

From-SVN: r253621
2017-10-10 20:46:26 +00:00
Nathan Sidwell
d6b605f6ae [C++ PATCH] Kill unneeded hash specialization
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00621.html
	* cp-tree.h (default_hash_traits <lang_identifier *>): Delete
	specialization.

From-SVN: r253620
2017-10-10 20:42:45 +00:00
Paolo Carlini
92395f1c24 re PR c++/81032 (ICE with lambda and broken constexpr)
2017-10-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81032
	* g++.dg/cpp1y/lambda-generic-ice6.C: New.

From-SVN: r253619
2017-10-10 20:16:40 +00:00
Jakub Jelinek
16d926d2ab re PR rtl-optimization/68205 (ICE compiling gcc.c-torture/execute/20040709-2.c with -fno-common on arm-none-eabi)
PR rtl-optimization/68205
	* gcc.c-torture/execute/20040709-3.c: New test.

From-SVN: r253618
2017-10-10 22:12:08 +02:00
Jakub Jelinek
b2ca2504f0 re PR c++/67625 (some constexpr expressions rejected as enumerator value)
2017-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/67625
	* g++.dg/cpp0x/pr67625.C: New test.

From-SVN: r253617
2017-10-10 22:11:47 +02:00
Jakub Jelinek
c9a0dec5ee re PR middle-end/70887 (internal compiler error in trunc_int_for_mode, at explow.c:78)
2017-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/70887
	* g++.dg/cpp0x/pr70887.C: New test.

From-SVN: r253616
2017-10-10 22:11:21 +02:00
Jakub Jelinek
aaf58ab173 re PR c++/70338 (ICE combining debug symbols, range-for in lambda in function template accessing captured variable-size array)
PR c++/70338
	* g++.dg/cpp0x/pr70338.C: New test.

From-SVN: r253615
2017-10-10 22:10:56 +02:00
Jakub Jelinek
10885d138e re PR c++/77786 (ICE in tsubst_copy, at cp/pt.c:13040)
PR c++/77786
	* g++.dg/cpp1y/pr77786.C: New test.

From-SVN: r253614
2017-10-10 22:10:25 +02:00
Jakub Jelinek
da31baba47 re PR c++/71875 (template specialization compile error)
PR c++/71875
	* g++.dg/cpp1y/pr71875.C: New test.

From-SVN: r253613
2017-10-10 22:10:00 +02:00
Jakub Jelinek
24f8d3916c re PR c++/77578 (ICE in cp_parser_omp_for_loop (cp/parser.c:29404))
PR c++/77578
	* g++.dg/gomp/pr77578.C: New test.

From-SVN: r253612
2017-10-10 22:09:29 +02:00
Jakub Jelinek
4407c3097f re PR middle-end/70100 (ICE: in execute, at cfgexpand.c:6066)
PR middle-end/70100
	* g++.dg/opt/pr70100.C: New test.

From-SVN: r253611
2017-10-10 22:09:01 +02:00
Jakub Jelinek
7094f0d341 re PR c++/68252 (left operand of shift expression, while we shift > 0 integer)
2017-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/68252
	* g++.dg/other/pr68252.C: New test.

From-SVN: r253610
2017-10-10 22:08:36 +02:00
Jakub Jelinek
71a84d92e1 re PR target/79565 (ICE in copy_to_mode_reg, at explow.c:612)
PR target/79565
	PR target/82483
	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
	OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
	__builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
	(ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
	to OPTION_MASK_ISA_AVX512VL - builtins that have both
	OPTION_MASK_ISA_MMX and some other bit set require both
	mmx and the ISAs without the mmx bit.
	* config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
	__builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
	__builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
	__builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
	__builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
	__builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
	__builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
	__builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
	__builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
	__builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
	__builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
	__builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
	__builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
	__builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
	Add OPTION_MASK_ISA_MMX.

	* gcc.target/i386/pr82483-1.c: New test.
	* gcc.target/i386/pr82483-2.c: New test.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>

From-SVN: r253609
2017-10-10 22:06:33 +02:00
Nathan Sidwell
eead34af3a [C++ PATCH] Hash mangling alias
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00618.html
	* decl2.c (struct mangled_decl_hash): New hash traits.
	(mangled_decls): Make hash_table<mangled_decl_hash>.
	(generate_mangling_alias, record_mangling): Adjust.

From-SVN: r253608
2017-10-10 19:59:12 +00:00