167465 Commits

Author SHA1 Message Date
Alexandre Oliva
ca7f909fba [PR88534] accept VAR_DECL in class literal template parms
P0732R2 / C++ 2a introduce class literals as template parameters.  The
front-end uses VAR_DECLs constructed from such literals to bind the
template PARM_DECLs, but dwarf2out.c used to reject such VAR_DECLs.

Taking DECL_INITIAL from such VAR_DECLs enables the generation of
DW_AT_const_value for them, at least when the class literal can
actually be represented as such.


for  gcc/ChangeLog

	PR c++/88534
	PR c++/88537
	* dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
	VAR_DECL args.

for  gcc/testsuite/ChangeLog

	PR c++/88534
	PR c++/88537
	* g++.dg/cpp2a/pr88534.C: New.
	* g++.dg/cpp2a/pr88537.C: New.

From-SVN: r269709
2019-03-15 13:56:55 +00:00
Iain Buclaw
d2025512b3 re PR d/88990 (ICE in get_symbol_decl, at d/decl.cc:1097)
PR d/88990
d/dmd: Merge upstream dmd 8d4c876c6

The extern storage class flag was wrongly propagated to function scope
when starting the semantic pass on the body.

Fixes https://gcc.gnu.org/PR88990

Reviewed-on: https://github.com/dlang/dmd/pull/9452

From-SVN: r269708
2019-03-15 13:37:07 +00:00
Robin Dapp
ec15654627 S/390: Fix tests that expect unquoted option names
r269586 puts single quotes around option names. This patch fixes tests
that expect the old format.

From-SVN: r269706
2019-03-15 13:19:10 +00:00
Kyrylo Tkachov
03570b2410 [AArch64] PR target/89719 Adjust gcc.target/aarch64/spellcheck*.c tests
As of recently the -march,-mcpu,-mtune strings in the error messages are
now quoted.
This patch adjusts the testcases in gcc.target/aarch64/ that had started
failing due to that change.

	PR target/89719
	* gcc.target/aarch64/spellcheck_4.c: Adjust dg-error string.
	* gcc.target/aarch64/spellcheck_5.c: Likewise.
	* gcc.target/aarch64/spellcheck_6.c: Likewise.

From-SVN: r269703
2019-03-15 09:50:11 +00:00
Jakub Jelinek
4e6482d05b re PR c++/89709 (ICE with constexpr and "-O")
PR c++/89709
	* tree.c (inchash::add_expr): Strip any location wrappers.
	* fold-const.c (operand_equal_p): Move stripping of location wrapper
	after hash verification.

	* g++.dg/cpp0x/constexpr-89709.C: New test.

From-SVN: r269702
2019-03-15 10:23:11 +01:00
Jakub Jelinek
8eb2215d8d re PR debug/89704 (ICE in add_const_value_attribute, at dwarf2out.c:19685)
PR debug/89704
	* dwarf2out.c (add_const_value_attribute): Return false for MINUS,
	SIGN_EXTEND and ZERO_EXTEND.

	* gcc.dg/debug/pr89704.c: New test.

From-SVN: r269700
2019-03-15 09:00:46 +01:00
Ian Lance Taylor
b1403b691a compiler: eliminate bound checks in append expression
The compiler generates two array index expressions when lowering
    an append expression. Currently they generate bound checks.
    Bound checks are not necessary in this case, as we know the slice
    has, or will grow to, enough length and capacity. Eliminate them.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166817

From-SVN: r269699
2019-03-15 04:34:43 +00:00
GCC Administrator
928499cfee Daily bump.
From-SVN: r269698
2019-03-15 00:16:11 +00:00
Jason Merrill
62de703f19 hash-table.h (remove_elt_with_hash): Return if slot is NULL rather than if is_empty (*slot).
* hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
	than if is_empty (*slot).
	* hash-set-tests.c (test_set_of_strings): Add tests for addition of
	existing elt and for elt removal.
	* hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
	of already removed elt.

	* hashtab.c (htab_remove_elt_with_hash): Return if slot is NULL rather
	than if *slot is HTAB_EMPTY_ENTRY.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r269695
2019-03-14 23:47:01 +01:00
H.J. Lu
12fb7712a8 i386: Handle REG_EH_REGION note
When we split:

(insn 18 17 76 2 (set (reg:SF 88 [ _19 ])
        (float:SF (mem/c:SI (symbol_ref:DI ("d") [flags 0x2]  <var_decl 0x7fd6d8290c60 d>) [1 d+0 S4 A32]))) "x.ii":4:20 170 {*floatsisf2}
     (expr_list:REG_EH_REGION (const_int 2 [0x2])
        (nil)))

to

(insn 94 17 18 2 (set (reg:V4SF 115)
        (vec_merge:V4SF (vec_duplicate:V4SF (float:SF (mem/c:SI (symbol_ref:DI ("d") [flags 0x2]  <var_decl 0x7f346837ac60 d>) [1 d+0 S4 A32])))
            (reg:V4SF 114)
            (const_int 1 [0x1]))) "x.ii":4:20 -1
     (nil))
(insn 18 94 76 2 (set (reg:SF 88 [ _19 ])
        (subreg:SF (reg:V4SF 115) 0)) "x.ii":4:20 112 {*movsf_internal}
     (expr_list:REG_EH_REGION (const_int 2 [0x2])
        (nil)))

we must copy the REG_EH_REGION note to the first insn and split the block
after the newly added insn.  The REG_EH_REGION on the second insn will be
removed later since it no longer traps.

gcc/

	PR target/89650
	* config/i386/i386.c (remove_partial_avx_dependency): Handle
	REG_EH_REGION note.

gcc/testsuite/

	PR target/89650
	* g++.target/i386/pr89650.C: New test.

From-SVN: r269694
2019-03-14 13:38:52 -07:00
Jason Merrill
f869f40780 Don't require 'bool' in a concept definition.
* parser.c (cp_parser_decl_specifier_seq): Support C++20
	concept-definition syntax without 'bool'.

From-SVN: r269692
2019-03-14 15:53:04 -04:00
Uros Bizjak
aa9cedb4ed * gcc.target/i386/pr85860.c: Use target int128 instead of lp64.
From-SVN: r269691
2019-03-14 19:39:44 +01:00
Thomas Koenig
c27722368b gfortran.texi: Document Q edit descriptor under " Extensions not implemented in GNU Fortran".
2019-03-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.texi: Document Q edit descriptor under
	" Extensions not implemented in GNU Fortran".

From-SVN: r269690
2019-03-14 17:31:18 +00:00
Martin Liska
3ce5bdf77c Remove dead option from manual (PR other/89712).
2019-03-14  Martin Liska  <mliska@suse.cz>

	PR other/89712
	* doc/invoke.texi: Remove -fdump-class-hierarchy option.

From-SVN: r269684
2019-03-14 14:19:33 +00:00
Richard Biener
6965fa6db5 re PR target/89711 (ICE in insert_vi_for_tree, at tree-ssa-structalias.c:2832)
2019-03-14  Richard Biener  <rguenther@suse.de>

	PR target/89711
	* config/i386/i386.c (make_resolver_func): Properly set
	DECL_CONTEXT on the RESULT_DECL.
	* config/rs6000/rs6000.c (make_resolver_func): Likewise.

From-SVN: r269683
2019-03-14 14:05:26 +00:00
Richard Biener
baa09dc5c9 c-tree.h (enum c_declspec_il): New.
2019-03-14  Richard Biener  <rguenther@suse.de>

	c/
	* c-tree.h (enum c_declspec_il): New.
	(struct c_declspecs): Merge gimple_p and rtl_p into declspec_il
	enum bitfield.
	* c-parser.c (c_parser_declaration_or_fndef): Adjust accordingly.
	Pass start pass and declspec_il to c_parser_parse_gimple_body.
	(c_parser_declspecs): Adjust.
	* gimple-parser.c: Include cfg.h, cfghooks.h, cfganal.h, tree-cfg.h,
	gimple-iterator.h, cfgloop.h, tree-phinodes.h, tree-into-ssa.h
	and bitmap.h.
	(struct gimple_parser): New.
	(gimple_parser::push_edge): New method.
	(c_parser_gimple_parse_bb_spec): New helper.
	(c_parser_parse_gimple_body): Get start pass and IL specification.
	Initialize SSA and CFG.
	(c_parser_gimple_compound_statement): Handle CFG and SSA build.
	Build a gimple_parser parsing state and pass it along.
	(c_parser_gimple_statement): Change intermittend __PHI internal
	function argument for the edge.
	(c_parser_gimple_or_rtl_pass_list): Handle ssa, cfg flags.
	(c_parser_gimple_goto_stmt): Record edges to build.
	(c_parser_gimple_if_stmt): Likewise.
	* gimple-parser.h (c_parser_parse_gimple_body): Adjust.
	(c_parser_gimple_or_rtl_pass_list): Likewise.

	* gimple-pretty-print.c: Include cfgloop.h.
	(dump_gimple_phi): Adjust.
	(dump_gimple_bb_header): Dump loop header for GIMPLE.
	(pp_cfg_jump): Adjust.
	(dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
	* tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
	(lower_phi_internal_fn): Remove.
	(verify_gimple_call): Remove IFN_PHI special-casing.
	(dump_function_to_file): Dump IL state.
	* tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
	done to deal with PHI nodes being present in non-SSA state.

	* gcc.dg/gimplefe-13.c: Adjust.
	* gcc.dg/gimplefe-14.c: Likewise.
	* gcc.dg/gimplefe-17.c: Likewise.
	* gcc.dg/gimplefe-18.c: Likewise.
	* gcc.dg/gimplefe-7.c: Likewise.
	* gcc.dg/torture/pr89595.c: Likewise.
	* gcc.dg/tree-ssa/cunroll-13.c: Likewise.
	* gcc.dg/tree-ssa/ivopt_mult_1g.c: Likewise.
	* gcc.dg/tree-ssa/ivopt_mult_2g.c: Likewise.
	* gcc.dg/tree-ssa/scev-3.c: Likewise.
	* gcc.dg/tree-ssa/scev-4.c: Likewise.
	* gcc.dg/tree-ssa/scev-5.c: Likewise.
	* gcc.dg/vect/vect-cond-arith-2.c: Likewise.
	* gcc.target/aarch64/sve/loop_add_6.c: Likewise.

From-SVN: r269682
2019-03-14 13:25:27 +00:00
Jakub Jelinek
27814aed34 re PR ipa/89684 (ICE in gsi_for_stmt, at gimple-iterator.c:613)
PR ipa/89684
	* multiple_target.c (create_dispatcher_calls): Change
	references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
	In the node->iterate_referring loop, push *ref rather than ref, call
	ref->remove_reference () and always pass 0 to iterate_referring.

	* gcc.target/i386/pr89684.c: New test.

From-SVN: r269681
2019-03-14 14:05:34 +01:00
Jakub Jelinek
87654f1813 re PR rtl-optimization/89679 (wrong code with -Og -frerun-cse-after-loop -fno-tree-fre)
PR rtl-optimization/89679
	* expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
	would contain a paradoxical SUBREG.

	* gcc.dg/pr89679.c: New test.

From-SVN: r269680
2019-03-14 13:21:36 +01:00
Richard Biener
df6d3ac9aa re PR tree-optimization/89710 (ICE in dyn_cast<gcond*, gimple>(gimple*) / should_duplicate_loop_header_p)
2019-03-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89710
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
	safe_dyn_cast.

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

From-SVN: r269679
2019-03-14 11:07:41 +00:00
Martin Liska
b815471796 GCOV: print {start,end}_column in JSON file and gcov-dump tool.
2019-03-14  Martin Liska  <mliska@suse.cz>

	* coverage.c (coverage_begin_function): Stream also
	end_column.
	* doc/gcov.texi: Document 2 new fields in JSON file.  Improve
	documentation about function declaration location.
	* gcov-dump.c (tag_function): Print whole range
	of function declaration.
	* gcov.c (struct function_info): Add end_column field.
	(function_info::function_info): Initialize it.
	(output_json_intermediate_file): Output {start,end}_column
	fields.
	(read_graph_file): Read end_column.

From-SVN: r269678
2019-03-14 09:33:54 +00:00
Richard Biener
ea9d9d749c re PR c++/89698 (Run-time error due to optimization of field access after cast at -Os/-O2 and higher)
2019-03-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/89698
	* fold-const.c (operand_equal_p): For INDIRECT_REF check
	that the access types are similar.

	* g++.dg/torture/pr89698.C: New testcase.

From-SVN: r269677
2019-03-14 09:24:21 +00:00
Jakub Jelinek
f54e63dfa3 re PR tree-optimization/89703 (ICE in compare_values_warnv, at tree-vrp.c:997)
PR tree-optimization/89703
	* tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
	aren't compatible also with builtin_decl_explicit.  Check pure
	or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
	and BUILT_IN_STPNCPY{,_CHK}.

	* gcc.c-torture/compile/pr89703-1.c: New test.
	* gcc.c-torture/compile/pr89703-2.c: New test.

From-SVN: r269674
2019-03-14 09:56:47 +01:00
H.J. Lu
fb055f4b74 x32: Add addr32 prefix to VSIB address
32-bit indices in VSIB address are sign-extended to 64 bits.  In x32,
when 32-bit indices are used as addresses, like in

vgatherdps %ymm7, 0(,%ymm9,1), %ymm6

32-bit indices, 0xf7fa3010, is sign-extended to 0xfffffffff7fa3010 which
is invalid address.  Add addr32 prefix to UNSPEC_VSIBADDR instructions
for x32 if there is no base register nor symbol.

This fixes 175.vpr and 254.gap in SPEC CPU 2000 on x32 with

-Ofast -funroll-loops -march=haswell

gcc/

	PR target/89523
	* config/i386/i386.c (ix86_print_operand): Handle 'M' to add
	addr32 prefix to VSIB address for X32.
	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
	"%M2" to opcode.
	(*avx512pf_gatherpf<mode>df_mask): Likewise.
	(*avx512pf_scatterpf<mode>sf_mask): Likewise.
	(*avx512pf_scatterpf<mode>df_mask): Likewise.
	(*avx2_gathersi<mode>): Prepend "%M3" to opcode.
	(*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
	(*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
	(*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
	(*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
	(*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
	(*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
	(*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
	(*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
	(*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
	(*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
	(*avx512f_scatterdi<mode>): Likewise.

gcc/testsuite/

	PR target/89523
	* gcc.target/i386/pr89523-1a.c: New test.
	* gcc.target/i386/pr89523-1b.c: Likewise.
	* gcc.target/i386/pr89523-2.c: Likewise.
	* gcc.target/i386/pr89523-3.c: Likewise.
	* gcc.target/i386/pr89523-4.c: Likewise.
	* gcc.target/i386/pr89523-5.c: Likewise.
	* gcc.target/i386/pr89523-6.c: Likewise.
	* gcc.target/i386/pr89523-7.c: Likewise.
	* gcc.target/i386/pr89523-8.c: Likewise.
	* gcc.target/i386/pr89523-9.c: Likewise.

From-SVN: r269673
2019-03-14 01:49:54 -07:00
Jakub Jelinek
b2725ea5df re PR c++/89512 (ICE in get_expr_operands, at tree-ssa-operands.c:882)
PR c++/89512
	* semantics.c (finish_qualified_id_expr): Reject variable templates.

	* g++.dg/cpp1y/var-templ61.C: New test.

From-SVN: r269672
2019-03-14 09:14:48 +01:00
Jakub Jelinek
0ee285909b re PR c++/89652 (ICE during constexpr evaluation)
PR c++/89652
	* constexpr.c (struct constexpr_ctx): Change save_exprs type from
	hash_set<tree> to vec<tree>.
	(cxx_eval_call_expression): Adjust for save_exprs being a vec instead
	of hash_set.
	(cxx_eval_loop_expr): Likewise.  Truncate the vector after each
	removal of SAVE_EXPRs from values.
	(cxx_eval_constant_expression) <case SAVE_EXPR>: Call safe_push
	method on save_exprs instead of add.

	* g++.dg/cpp1y/constexpr-89652.C: New test.

From-SVN: r269671
2019-03-14 09:13:09 +01:00
GCC Administrator
7da0bca130 Daily bump.
From-SVN: r269670
2019-03-14 00:16:19 +00:00
Jason Merrill
dcfa851886 PR c++/86521 - C++17 copy elision in initialization by constructor.
This is an overlooked case in C++17 mandatory copy elision: We want overload
resolution to reflect that initializing an object from a prvalue does not
involve a copy or move constructor even when [over.match.ctor] says that
only constructors are candidates.  Here I implement that by looking through
the copy/move constructor in joust.

	* call.c (joust_maybe_elide_copy): New.
	(joust): Call it.

From-SVN: r269667
2019-03-13 19:34:51 -04:00
Harald Anlauf
edaff7c944 re PR fortran/87045 (pointer to array of character)
2019-03-13  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/87045
	* trans-expr.c (gfc_trans_pointer_assignment): Move check for same
	string length so that we do not get false errors for deferred
	length.

	PR fortran/87045
	* gfortran.dg/pr87045.f90: New test.

From-SVN: r269664
2019-03-13 21:33:27 +00:00
Vladimir Makarov
1e05d1854c re PR target/85860 (ICE: in lra_split_hard_reg_for, at lra-assigns.c:1810: unable to find a register to spill with -flive-range-shrinkage -mbmi2)
2019-03-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/85860
	* lra-constraints.c (inherit_in_ebb): Update
	potential_reload_hard_regs along with live_hard_regs.

2019-03-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/85860
	* gcc.target/i386/pr85860.c: New.

From-SVN: r269662
2019-03-13 20:35:18 +00:00
Jakub Jelinek
43fb4c8056 re PR debug/89498 (ICE in AT_loc_list, at dwarf2out.c:4871)
PR debug/89498
	* dwarf2out.c (size_of_die): For dw_val_class_view_list always use
	DWARF_OFFSET_SIZE.
	(value_format): For dw_val_class_view_list never use DW_FORM_loclistx.

From-SVN: r269661
2019-03-13 21:22:15 +01:00
Marek Polacek
ef7e79a367 PR c++/89660 - bogus error with -Wredundant-move.
* typeck.c (maybe_warn_pessimizing_move): Only accept (T &) &arg
	as the std::move's argument.  Don't call convert_for_initialization
	when warn_redundant_move isn't on.

	* g++.dg/cpp0x/Wredundant-move8.C: New test.
	* g++.dg/cpp0x/Wredundant-move9.C: New test.

From-SVN: r269660
2019-03-13 20:04:33 +00:00
Marek Polacek
2b0a62741e PR c++/89686 - mixing init-capture and simple-capture in lambda.
* parser.c (cp_parser_lambda_introducer): Give error when combining
	init-capture and simple-capture.

	* g++.dg/cpp2a/lambda-pack-init2.C: New test.

From-SVN: r269659
2019-03-13 19:58:20 +00:00
Janus Weil
84083a711e re PR fortran/89601 ([PDT] ICE: Segmentation fault (in resolve_component))
fix PR 89601

2019-03-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/89601
	* decl.c (gfc_match_formal_arglist): Reject empty type parameter lists.
	(gfc_match_derived_decl): Mark as PDT only if type parameter list was
	matched successfully.

2019-03-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/89601
	* gfortran.dg/pdt_16.f03: Modified to avoid follow-up errors.
	* gfortran.dg/pdt_30.f90: New test case.

From-SVN: r269658
2019-03-13 20:52:23 +01:00
Marek Polacek
cbfa3ec327 PR c++/88979 - further P0634 fix for constructors.
* parser.c (cp_parser_decl_specifier_seq): Pass flags to
	cp_parser_constructor_declarator_p.
	(cp_parser_direct_declarator): Allow missing typename for constructor
	parameters.
	(cp_parser_constructor_declarator_p): Add FLAGS parameter.  Pass it to
	cp_parser_type_specifier.

	* g++.dg/cpp2a/typename15.C: New test.

From-SVN: r269656
2019-03-13 18:38:45 +00:00
Martin Sebor
129ef157d4 PR tree-optimization/89662 - -Warray-bounds ICE on void* arithmetic
gcc/ChangeLog:

	PR tree-optimization/89662
	* tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
	has a size.

gcc/testsuite/ChangeLog:

	PR tree-optimization/89662
	* gcc.dg/Warray-bounds-41.c: New test.

From-SVN: r269655
2019-03-13 11:19:43 -06:00
Paolo Carlini
bd8ea48313 re PR c++/63508 (ICE when using bracketed initializer on pointer to member function of a templated class)
2019-03-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/63508
	* g++.dg/cpp0x/auto53.C: New.

From-SVN: r269651
2019-03-13 15:01:00 +00:00
Richard Biener
cd5091f1ea re PR middle-end/89677 (internal compiler error: in wide_int_to_tree_1, at tree.c:1549)
2019-03-13  Richard Biener  <rguenther@suse.de>

	PR middle-end/89677
	* tree-scalar-evolution.c (simplify_peeled_chrec): Do not
	throw FP expressions at tree-affine.

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

From-SVN: r269646
2019-03-13 11:32:11 +00:00
Richard Biener
c045ea5763 tree-pretty-print.c (dump_generic_node): For -gimple properly dump negative integer constants using _Literal (type) -num.
2019-03-14  Richard Biener  <rguenther@suse.de>

	* tree-pretty-print.c (dump_generic_node): For -gimple properly
	dump negative integer constants using _Literal (type) -num.

From-SVN: r269645
2019-03-13 10:56:32 +00:00
Paolo Carlini
31ba0418a2 re PR c++/85558 (ICE in make_rtl_for_nonlocal_decl when using static member of template class)
2019-03-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85558
	* g++.dg/other/friend16.C: New.
	* g++.dg/other/friend17.C: Likewise.

From-SVN: r269644
2019-03-13 10:32:29 +00:00
Eric Botcazou
7a26e2739d re PR sanitizer/80953 (Support libsanitizer on Solaris)
PR sanitizer/80953
	Merge from LLVM revision 355980
	* asan/asan_allocator.h (kAllocatorSpace): Define for SPARC.
	(kAllocatorSize): Likewise.
	(DefaultSizeClassMap): Likewise.
	* asan/asan_mapping.h (kSPARC64_ShadowOffset64): Define.
	(SHADOW_OFFSET): Define for SPARC.
	Include asan_mapping_sparc64.h for SPARC 64-bit.
	* asan/asan_mapping_sparc64.h: New file.

From-SVN: r269641
2019-03-13 09:19:25 +00:00
Eric Botcazou
a196c82cf2 re PR sanitizer/80953 (Support libsanitizer on Solaris)
PR sanitizer/80953
	Merge from LLVM revision 355979
	* asan/asan_globals.c (GetGlobalsForAddress): Use internal_memcpy to
	copy Global objects for SPARC with GCC.

From-SVN: r269640
2019-03-13 09:15:02 +00:00
Eric Botcazou
36b50aeb4e re PR sanitizer/80953 (Support libsanitizer on Solaris)
PR sanitizer/80953
	Merge from LLVM revision 355978
	* sanitizer_common/sanitizer_allocator_primary32.h
	(class SizeClassAllocator32): Assert that kSpaceSize is power of 2 if
	SANITIZER_SIGN_EXTENDED_ADDRESSES is set.
	(PointerIsMine): Deal with SANITIZER_SIGN_EXTENDED_ADDRESSES.
	(ComputeRegionId): Likewise.
	* sanitizer_common/sanitizer_linux.cc (GetMaxVirtualAddress): Return
	appropriate value for SPARC 64-bit.
	* sanitizer_common/sanitizer_platform.h (SANITIZER_MMAP_RANGE_SIZE):
	Define for SPARC.
	(SANITIZER_SIGN_EXTENDED_ADDRESSES): Define to 1 for SPARC 64-bit.

From-SVN: r269639
2019-03-13 09:11:46 +00:00
Eric Botcazou
017abbe362 re PR sanitizer/80953 (Support libsanitizer on Solaris)
PR sanitizer/80953
	Merge from LLVM revision 355965
	* sanitizer_common/sanitizer_linux.cc (GetWriteFlag): Implement for
	SPARC/Linux.
	(GetPcSpBp): Likewise.
	* sanitizer_common/sanitizer_stacktrace.cc (GetNextInstructionPc):
	Adjust for SPARC.
	* sanitizer_common/sanitizer_stacktrace.h (SANITIZER_CAN_FAST_UNWIND):
	Define to 1 for SPARC.
	* sanitizer_common/sanitizer_stacktrace_sparc.cc: Rewrite.
	* sanitizer_common/sanitizer_unwind_linux_libcdep.cc (SlowUnwindStack):
	Adjust the PC address for SPARC with GCC.

From-SVN: r269638
2019-03-13 09:05:43 +00:00
Jakub Jelinek
6e089cc3f6 ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove nonlocal_value member.
* ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
	nonlocal_value member.

From-SVN: r269637
2019-03-13 09:48:56 +01:00
Jakub Jelinek
33813f1d70 re PR middle-end/88588 (ICE in make_decl_rtl, at varasm.c:1329)
PR middle-end/88588
	* omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
	(ipa_simd_modify_function_body): Handle PHIs.

	* c-c++-common/gomp/pr88588.c: New test.

From-SVN: r269636
2019-03-13 09:24:41 +01:00
Thomas Koenig
55b9c61257 [multiple changes]
2019-03-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/66695
	PR fortran/77746
	PR fortran/79485
	* gfortran.h (gfc_symbol): Add bind_c component.
	(gfc_get_gsymbol): Add argument bind_c.
	* decl.c (add_global_entry): Add bind_c argument to
	gfc_get_symbol.
	* parse.c (parse_block_data): Likewise.
	(parse_module): Likewise.
	(add_global_procedure): Likewise.
	(add_global_program): Likewise.
	* resolve.c (resolve_common_blocks): Likewise.
	(resolve_global_procedure): Likewise.
	(gfc_verify_binding_labels): Likewise.
	* symbol.c (gfc_get_gsymbol): Add argument bind_c. Set bind_c
	in gsym.
	* trans-decl.c (gfc_get_module_backend_decl): Add bind_c argument
	to gfc_get_symbol.
	(gfc_get_extern_function_decl): If the sym has a binding label
	and it cannot be found in the global symbol tabel, it is the wrong
	one and vice versa.

2019-03-13 Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/66695
	PR fortran/77746
	PR fortran/79485
	* gfortran.dg/binding_label_tests_30.f90: New test.
	* gfortran.dg/binding_label_tests_31.f90: New test.
	* gfortran.dg/binding_label_tests_32.f90: New test.
	* gfortran.dg/binding_label_tests_33.f90: New test.

From-SVN: r269635
2019-03-13 07:21:33 +00:00
Ian Lance Taylor
599b9f723e compiler: compare parse methods when indexing interface types for export
This change fixes a bug in which two interface types were being
    incorrectly commoned (considered identical) in the initial stages of
    writing out types to export data. The indexer does a walk to collect
    candidates for export, inserting types into a table to eliminate
    duplicates; as part of this process a local interface type T1 was
    being commoned with a different interface type T2. This caused a cycle
    in the exported type graph due to the way embedded interfaces are
    handled.
    
    The fix was to add a new flag to the Type::is_identical utility
    routine to request that interface type comparison be done by examining
    the original parse methods, as opposed to the expanded method set,
    then use the new flag when creating the hash map for the exporter.
    
    Fixes golang/go#30659.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166638

From-SVN: r269634
2019-03-13 05:12:05 +00:00
Ian Lance Taylor
f4390da0c5 compiler: add new debugging helper function debug_go_type()
Add a new debugging utility routine debug_go_type(), intended to
    display the contents of a Type object in a way useful to debugging
    a run of the compiler.  Prior to this the only useful alternative
    for debugging types was invoking the mangled_name() method, which
    has problems (for example, won't work on interface types prior
    to finalizing of methods).
    
    This is a "deep" dump, meaning that all types reachable from the
    type passed to debug_go_type() will be printed out. Example:
    
    (gdb) print debug_go_type(t1)
          T0        0x535f300  'net/http.Header' -> T1
          T1        0x535d3d0  map ['string' -> string] T4
          T2        0x5304bb0  'string' -> string
          T3        0x331f900  string
          T4        0x535d370  array [] 'string' -> string
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166637

From-SVN: r269633
2019-03-13 04:43:33 +00:00
Iain Buclaw
50e021a590 pr88957.d: Move to gdc.dg/ubsan.
gcc/testsuite/ChangeLog:

2019-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* gdc.dg/pr88957.d: Move to gdc.dg/ubsan.
	* gdc.dg/ubsan/ubsan.exp: New file.
	* lib/gdc.exp (gdc_include_flags): Remove unused target variable.
	Explicitly return flags from procedure.

From-SVN: r269632
2019-03-13 00:18:37 +00:00
GCC Administrator
1ad43ab9a3 Daily bump.
From-SVN: r269631
2019-03-13 00:16:13 +00:00