Commit Graph

160270 Commits

Author SHA1 Message Date
Martin Liska
a9a9804984 Properly redirect alias for MVC (PR ipa/84722).
2018-03-16  Martin Liska  <mliska@suse.cz>

	PR ipa/84722
	* multiple_target.c (create_dispatcher_calls): Redirect also
	an alias.
2018-03-16  Martin Liska  <mliska@suse.cz>

	PR ipa/84722
	* gcc.target/i386/mvc10.c: New test.

From-SVN: r258595
2018-03-16 14:53:24 +00:00
Jason Merrill
a81495699e PR c++/83937 - wrong C++17 handling of init-list ctor argument.
* call.c (build_special_member_call): Don't convert an init-list
	argument directly to the class type.

From-SVN: r258594
2018-03-16 10:35:47 -04:00
Jakub Jelinek
570f86f94e re PR c++/79937 (ICE in replace_placeholders_r)
PR c++/79937
	PR c++/82410
	* tree.h (TARGET_EXPR_NO_ELIDE): Define.
	* gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with
	TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR.

	* cp-tree.h (CONSTRUCTOR_PLACEHOLDER_BOUNDARY): Define.
	(find_placeholder): Declare.
	* tree.c (struct replace_placeholders_t): Add exp member.
	(replace_placeholders_r): Don't walk into ctors with
	CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag set, unless they are equal to
	d->exp.  Replace PLACEHOLDER_EXPR with unshare_expr (x) rather than x.
	(replace_placeholders): Initialize data.exp.
	(find_placeholders_r, find_placeholders): New functions.
	* typeck2.c (process_init_constructor_record,
	process_init_constructor_union): Set CONSTRUCTOR_PLACEHOLDER_BOUNDARY
	if adding NSDMI on which find_placeholder returns true.
	* call.c (build_over_call): Don't call replace_placeholders here.
	* cp-gimplify.c (cp_genericize_r): Set TARGET_EXPR_NO_ELIDE on
	TARGET_EXPRs with CONSTRUCTOR_PLACEHOLDER_BOUNDARY set on
	TARGET_EXPR_INITIAL.
	(cp_fold): Copy over CONSTRUCTOR_PLACEHOLDER_BOUNDARY bit to new
	ctor.

	* g++.dg/cpp1y/pr79937-1.C: New test.
	* g++.dg/cpp1y/pr79937-2.C: New test.
	* g++.dg/cpp1y/pr79937-3.C: New test.
	* g++.dg/cpp1y/pr79937-4.C: New test.
	* g++.dg/cpp1y/pr82410.C: New test.

From-SVN: r258593
2018-03-16 13:46:12 +01:00
Jason Merrill
aafdbe06af PR c++/83911 - ICE with multiversioned constructor.
* cp-gimplify.c (cp_genericize_r): Replace versioned function with
	dispatchere here.
	* call.c (build_over_call): Not here.
	PR c++/83911 - ICE with multiversioned constructor.

From-SVN: r258592
2018-03-16 08:38:42 -04:00
Richard Biener
a1295eec4e re PR c/84873 (ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4))
2018-03-16  Richard Biener  <rguenther@suse.de>

	PR c/84873
	* c-gimplify.c (c_gimplify_expr): Revert previous change.  Instead
	unshare the possibly folded expression.

From-SVN: r258591
2018-03-16 12:04:29 +00:00
Tom de Vries
15f0c25f4e [testsuite] Require vect_int_mult in pr84512.c
2018-03-16  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/tree-ssa/pr84512.c: Require effective target vect_int_mult.

From-SVN: r258590
2018-03-16 11:38:57 +00:00
Tom de Vries
b82664df2b [testsuite] Require label_values in builtin-unreachable-6.c
2018-03-16  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/builtin-unreachable-6.c: Require effective target label_values.

From-SVN: r258589
2018-03-16 11:38:45 +00:00
Jakub Jelinek
f664274af9 re PR c++/84874 (internal compiler error: in reshape_init_class, at cp/decl.c:5800)
PR c++/84874
	* g++.dg/cpp2a/desig8.C: New test.

From-SVN: r258588
2018-03-16 09:44:56 +01:00
Julia Koval
057f9d20f1 Fix documentation for CLWB ISA.
gcc/
	* doc/invoke.texi (Skylake Server): Add CLWB.
	Cannonlake): Remove CLWB.

From-SVN: r258587
2018-03-16 09:11:27 +01:00
Jakub Jelinek
7b9be7003d re PR tree-optimization/84841 (ICE: tree check: expected ssa_name, have real_cst in rewrite_expr_tree_parallel, at tree-ssa-reassoc.c:4624)
PR tree-optimization/84841
	* tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from
	1 << 3.
	(FLOAT_ONE_CONST_TYPE): Define.
	(constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0.
	(sort_by_operand_rank): Put entries with higher constant_type last
	rather than first to match comments.

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

From-SVN: r258586
2018-03-16 09:06:41 +01:00
Jakub Jelinek
828fd2fbe8 re PR c++/84874 (internal compiler error: in reshape_init_class, at cp/decl.c:5800)
PR c++/84874
	* decl.c (reshape_init_class): Don't assert d->cur->index == field
	if d->cur->index is a FIELD_DECL, instead set field to d->cur->index.

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

From-SVN: r258585
2018-03-16 09:05:06 +01:00
Mark Doffman
9f3599c044 03-16-2018 Mark Doffman <mark.doffman@codethink.co.uk>
Jim MacArthur  <jim.macarthur@codethink.co.uk>

	* gfortran.dg/automatic_1.f90: New test.
	* gfortran.dg/automatic_repeat.f90: New test
	* gfortran.dg/automatic_save.f90: New test.
	* gfortran.dg/vax_structure.f90: New test.

From-SVN: r258584
2018-03-15 23:07:39 -06:00
Steven G. Kargl
64300da748 re PR fortran/78741 (ICE in gfc_get_symbol_decl, at fortran/trans-decl.c:1534)
2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78741
	* decl.c (get_proc_name):  Check for clash of entry name with
	subroutine name.

2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78741
	* gfortran.dg/pr78741.f90: New test.

From-SVN: r258581
2018-03-16 02:56:34 +00:00
Steven G. Kargl
93d1ab50c5 re PR fortran/69395 (ICE on declaring array with more than 7 dimensions+codimensions)
2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69395
	* decl.c (merge_array_spec): Limit the merging to maximum allowed
	dimensions, and issue error message if limit is exceeded.

2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69395
	* gfortran.dg/pr69395.f90: New test.

From-SVN: r258580
2018-03-16 02:43:02 +00:00
GCC Administrator
39f5f2ed51 Daily bump.
From-SVN: r258579
2018-03-16 00:16:13 +00:00
Sandra Loosemore
9422357988 nios2.md (movsi_internal): Fix thinko in split predicate.
2018-03-15  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.md (movsi_internal): Fix thinko in 
	split predicate.

From-SVN: r258575
2018-03-15 18:33:34 -04:00
Jakub Jelinek
ffc8b52f9a re PR c++/79085 (ICE with placement new to unaligned location)
PR c++/79085
	* calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment
	check and use address of target always.

	* g++.dg/opt/pr79085.C: New test.

From-SVN: r258574
2018-03-15 22:09:24 +01:00
Jakub Jelinek
724ad4a31b re PR libfortran/84880 (libgfortran fail to build on aarch64/arm 32bit cross toolchain)
PR libgfortran/84880
	* intrinsics/kill.c (kill): Rename to...
	(PREFIX (kill)): ... this.  Use export_proto_np instead of export_proto.

From-SVN: r258571
2018-03-15 19:04:59 +01:00
H.J. Lu
23f95cb77a i386: Don't generate alias for function return thunk
Function return thunks shouldn't be aliased to indirect branch thunks
since indirect branch thunks are placed in COMDAT section and a COMDAT
section with indirect branch may not have function return thunk.  This
patch generates function return thunks directly.

gcc/

	PR target/84574
	* config/i386/i386.c (indirect_thunk_needed): Update comments.
	(indirect_thunk_bnd_needed): Likewise.
	(indirect_thunks_used): Likewise.
	(indirect_thunks_bnd_used): Likewise.
	(indirect_return_needed): New.
	(indirect_return_bnd_needed): Likewise.
	(output_indirect_thunk_function): Add a bool argument for
	function return.
	(output_indirect_thunk_function): Don't generate alias for
	function return thunk.
	(ix86_code_end): Call output_indirect_thunk_function to generate
	function return thunks.
	(ix86_output_function_return): Set indirect_return_bnd_needed
	and indirect_return_needed instead of indirect_thunk_bnd_needed
	and indirect_thunk_needed.

gcc/testsuite/

	PR target/84574
	* gcc.target/i386/ret-thunk-9.c: Expect __x86_return_thunk
	label instead of __x86_indirect_thunk label.

From-SVN: r258569
2018-03-15 10:54:40 -07:00
Jakub Jelinek
4a5a49b034 re PR c++/84222 ([[deprecated]] class complains about internal class usage)
PR c++/84222
	* cp-tree.h (cp_warn_deprecated_use): Declare.
	* tree.c (cp_warn_deprecated_use): New function.
	* typeck2.c (build_functional_cast): Use it.
	* decl.c (grokparms): Likewise.
	(grokdeclarator): Likewise.  Temporarily push nested class scope
	around grokparms call for out of class member definitions.

	* g++.dg/warn/deprecated.C (T::member3): Change dg-warning to dg-bogus.
	* g++.dg/warn/deprecated-6.C (T::member3): Likewise.
	* g++.dg/warn/deprecated-13.C: New test.

From-SVN: r258568
2018-03-15 18:45:01 +01:00
Ian Lance Taylor
8bb2726d08 cmd/go: force LANG=C when looking for compiler version
Tested by installing the gcc-locales package and running
        LANG=de_DE.utf8 go build hello.go
    Without this change, that fails, as described at
    https://gcc.gnu.org/PR84765.
    
    Reviewed-on: https://go-review.googlesource.com/100737

From-SVN: r258565
2018-03-15 16:56:24 +00:00
David Malcolm
e0c079cba4 Credit Paul Hua for r258559
From-SVN: r258561
2018-03-15 15:52:11 +00:00
Olga Makhotina
e7297be9c0 Enable Intel ENCLV support.
2018-03-15  Olga Makhotina  <olga.makhotina@intel.com>

gcc/
        * config/i386/sgxintrin.h (_enclv_u32): New intrinsic.
        (__enclv_bc, __enclv_cd, __enclv_generic): New definitions.
        (ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves.

gcc/testsuite/
        * gcc.target/i386/sgx.c (_enclv_u32): Test new intrinsic.

From-SVN: r258560
2018-03-15 16:46:38 +01:00
David Malcolm
e333a522bb Fix testcase for PR c/84852
gcc/testsuite/ChangeLog:
	PR c/84852
	* gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp.

From-SVN: r258559
2018-03-15 15:39:46 +00:00
Segher Boessenkool
244688fb39 rs6000: Fix for the previous abi_v4_pass_in_fpr change
I was a bit over-enthusiastic, we still support xilinxfp.


	* config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the
	TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode
	resp. SFmode cases.

From-SVN: r258557
2018-03-15 16:17:07 +01:00
Richard Biener
919674fb7d re PR c/84873 (ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4))
2018-03-15  Richard Biener  <rguenther@suse.de>

	PR c/84873
	* c-gimplify.c (c_gimplify_expr): Do not fold expressions.

	* c-c++-common/pr84873.c: New testcase.

From-SVN: r258556
2018-03-15 13:10:24 +00:00
Tamar Christina
22534ea554 re PR target/84711 (AArch32 big-endian fails when taking subreg of a vector mode to a scalar mode.)
2018-03-15  Tamar Christina  <tamar.christina@arm.com>

	PR target/84711
	* config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE
	instead of GET_MODE_SIZE when comparing Units.
	
gcc/testsuite/
2018-03-15  Tamar Christina  <tamar.christina@arm.com>

	PR target/84711
	* gcc.target/arm/big-endian-subreg.c: New.

From-SVN: r258554
2018-03-15 10:53:17 +00:00
Vladimir Mezentsev
74a9301d61 re PR target/68256 (Defining TARGET_USE_CONSTANT_BLOCKS_P causes go bootstrap failure on aarch64.)
2018-03-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

        PR target/68256
        * varasm.c (hash_section): Return an unchangeble hash value
        * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p):
        Return !aarch64_can_use_per_function_literal_pools_p ().

From-SVN: r258553
2018-03-15 08:55:04 +00:00
Jakub Jelinek
fa7dde7ea2 re PR target/84860 (ICE in emit_move_insn, at expr.c:3717)
PR target/84860
	* optabs.c (emit_conditional_move): Pass address of cmode's copy
	rather than address of cmode as last argument to prepare_cmp_insn.

	* gcc.c-torture/compile/pr84860.c: New test.

From-SVN: r258552
2018-03-15 09:35:28 +01:00
Julia Koval
c36b04c146 Add builtin_cpu for cannonlake and new isa features.
gcc/
	* config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ,
	F_AVX512VNNI, F_AVX512BITALG): New.

gcc/testsuite/
	* gcc.target/i386/builtin_target.c (check_intel_cpu_model): Add
	cannonlake.
	(check_features): Add avx512vbmi2, gfni, vpclmulqdq, avx512vnni,
	avx512bitalg.

libgcc/
	* config/i386/cpuinfo.c (get_available_features): Add
	FEATURE_AVX512VBMI2, FEATURE_GFNI, FEATURE_VPCLMULQDQ,
	FEATURE_AVX512VNNI, FEATURE_AVX512BITALG.
	* config/i386/cpuinfo.h (processor_features) Add
	FEATURE_AVX512VBMI2, FEATURE_GFNI, FEATURE_VPCLMULQDQ,
	FEATURE_AVX512VNNI, FEATURE_AVX512BITALG.

From-SVN: r258551
2018-03-15 08:52:36 +01:00
Jakub Jelinek
9bb45a958d re PR c/84853 (ICE: verify_gimple failed (expand_shift_1))
PR c/84853
	* c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>:
	If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has
	INTEGER_TYPE element type.

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

From-SVN: r258550
2018-03-15 08:37:53 +01:00
Jason Merrill
8cb1151b60 PR c++/84820 - no error for invalid qualified-id.
* parser.c (cp_parser_make_indirect_declarator): Don't wrap
	cp_error_declarator.

From-SVN: r258549
2018-03-15 00:34:45 -04:00
Jason Merrill
e62d673d78 PR c++/84801 - ICE with unexpanded pack in lambda.
We avoid complaining about unexpanded packs when inside a lambda,
	since the lambda as a whole could be part of a pack expansion.
	But that can only be true if the lambda is in a template context.

   	* pt.c (check_for_bare_parameter_packs): Don't return early for a
	lambda in non-template context.

From-SVN: r258548
2018-03-14 23:49:07 -04:00
Jason Merrill
b149eb04c8 PR c++/81236 - auto variable and auto function
* pt.c (tsubst_baselink): Update the type of the BASELINK after
	mark_used.

From-SVN: r258547
2018-03-14 23:08:24 -04:00
GCC Administrator
e786e485a7 Daily bump.
From-SVN: r258546
2018-03-15 00:16:25 +00:00
John David Anglin
82e18598fc re PR target/83451 (FAIL: gfortran.dg/matmul_10.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (ICE))
PR target/83451
	* config/pa/pa.c (pa_emit_move_sequence):  Always emit secondary reload
	insn for floating-point loads and stores.

From-SVN: r258541
2018-03-14 23:31:57 +00:00
Jonathan Wakely
0b3ec8f48f PR libstdc++/78420 Make std::less etc. yield total order for pointers
In order for std::less<T*> etc. to meet the total order requirements of
[comparisons] p2 we need to cast unrelated pointers to uintptr_t before
comparing them. Those casts aren't allowed in constant expressions, so
only cast when __builtin_constant_p says the result of the comparison is
not a compile-time constant (because the arguments are not constants, or
the result of the comparison is unspecified). When the result is
constant just compare the pointers directly without casting.

This ensures that the function can be called in constant expressions
with suitable arguments, but still yields a total order even for
otherwise unspecified pointer comparisons.

For std::less<void> etc. add new overloads for pointers, which use
std::less<common_type_t<T*,U*>> directly. Also change the generic
overloads to detect when the comparison would call a built-in relational
operator with pointer operands, and dispatch that case to the
corresponding specialization for void pointers.

	PR libstdc++/78420
	* include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
	(greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
	to ensure total order for pointers.
	(greater<void>, less<void>, greater_equal<void>, less_equal<void>):
	Add operator() overloads for pointer arguments and make generic
	overloads dispatch to new _S_cmp functions when comparisons would
	use built-in operators for pointers.
	* testsuite/20_util/function_objects/comparisons_pointer.cc: New.

From-SVN: r258540
2018-03-14 23:02:01 +00:00
Carl Love
dcdfd47859 re PR target/84422 (ICE on various builtin test functions when compiled with -mcpu=power7)
gcc/ChangeLog:

2018-03-14  Carl Love  <cel@us.ibm.com>

	PR target/84422
	* config/rs6000/rs6000-builtin.def: Change expansion for
	VMULESW to BU_P8V_AV_2.
	Change expansion for VMULEUW to BU_P8V_AV_2.
	* config/rs6000/rs6000.c: Change
	ALTIVEC_BUILTIN_VMULESW to P8V_BUILTIN_VMULESW.
	Change ALTIVEC_BUILTIN_VMULEUW to P8V_BUILTIN_VMULEUW.
	Change ALTIVEC_BUILTIN_VMULOSW to P8V_BUILTIN_VMULOSW.
	Change ALTIVEC_BUILTIN_VMULOUW to P8V_BUILTIN_VMULOUW.
	* config/rs6000/rs6000-c.c: Change
	ALTIVEC_BUILTIN_VMULESW to P8V_BUILTIN_VMULESW.
	Change ALTIVEC_BUILTIN_VMULEUW to P8V_BUILTIN_VMULEUW.
	Change ALTIVEC_BUILTIN_VMULOSW to P8V_BUILTIN_VMULOSW.
	Change ALTIVEC_BUILTIN_VMULOUW to P8V_BUILTIN_VMULOUW.

From-SVN: r258539
2018-03-14 23:01:12 +00:00
Jason Merrill
e493c503f9 PR c++/83916 - ICE with template template parameters.
* pt.c (convert_template_argument): Don't substitute into type of
	non-type parameter if we don't have enough arg levels.
	(unify): Likewise.

From-SVN: r258533
2018-03-14 15:17:03 -04:00
Carl Love
cb90e18c68 rs6000-c.c: Add macro definitions for ALTIVEC_BUILTIN_VEC_PERMXOR.
gcc/ChangeLog:

2018-03-14  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000-c.c: Add macro definitions for
	ALTIVEC_BUILTIN_VEC_PERMXOR.
	* config/rs6000/rs6000.h: Add #define for vec_permxor builtin.
	* config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR.
	* config/rs6000/altivec.md (altivec_vpermxor): New define expand.
	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case
	UNSPEC_VPERMXOR.
	* config/doc/extend.texi: Add prototypes for vec_permxor.

gcc/testsuite/ChangeLog:

2018-03-14  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/builtins-7-runnable.c: New test file.

From-SVN: r258530
2018-03-14 17:38:15 +00:00
Martin Liska
5677683f0f Add test-case (PR ipa/84805).
2018-03-14  Martin Liska  <mliska@suse.cz>

	PR ipa/8480
	* g++.dg/lto/pr84805_0.C: New test.
	* g++.dg/lto/pr84805_1.C: New test.
	* g++.dg/lto/pr84805_2.C: New test.

From-SVN: r258529
2018-03-14 17:26:38 +00:00
David Malcolm
082284da9d Fix ICE for missing header fix-it hints with overlarge #line directives (PR c/84852)
PR c/84852 reports an ICE inside diagnostic_show_locus when printing
a diagnostic for a source file with a #line >= 2^31:

  #line 7777777777
  int foo (void) { return strlen(""); }

where we're attempting to print a fix-it hint at the top of the file
and underline the "strlen" (two "line spans").

The
  #line 7777777777
won't fix within the 32-bit linenum_type, and is truncated from
  0x1cf977871
to
   0xcf977871
i.e. 3482810481 in decimal.

Such a #line is reported by -pedantic and -pedantic-errors, but we
shouldn't ICE.

The ICE is an assertion failure within layout::calculate_line_spans,
where the line spans have not been properly sorted.

The layout_ranges are stored as int, rather than linenum_type,
giving line -812156815 for the error, and line 1 for the fix-it hint.

However, line_span uses linenum_type rather than int.

line_span::comparator compares these values as int, and hence
decides that (linenum_type)3482810481 aka (int)-812156815 is less
than line 1.

This leads to this assertion failing in layout::calculate_line_spans:

1105	      gcc_assert (next->m_first_line >= current->m_first_line);

since it isn't the case that 1 >= 3482810481.

The underlying problem is the mix of types for storing line numbers:
in parts of libcpp and diagnostic-show-locus.c we use linenum_type;
in other places (including libcpp's expanded_location) we use int.

I looked at using linenum_type throughout, but doing so turned into
a large patch, so this patch fixes the ICE in a less invasive way
by merely using linenum_type more consistently just within
diagnostic-show-locus.c, and fixing line_span::comparator to properly
handle line numbers (and line number differences) >= 2^31, by using
a new helper function for linenum_type differences, computing the
difference using long long, and using the sign of the difference
(as the difference might not fit in the "int" return type imposed
by qsort).

gcc/ChangeLog:
	PR c/84852
	* diagnostic-show-locus.c (class layout_point): Convert m_line
	from int to linenum_type.
	(line_span::comparator): Use linenum "compare" function when
	comparing line numbers.
	(test_line_span): New function.
	(layout_range::contains_point): Convert param "row" from int to
	linenum_type.
	(layout_range::intersects_line_p): Likewise.
	(layout::will_show_line_p): Likewise.
	(layout::print_source_line): Likewise.
	(layout::should_print_annotation_line_p): Likewise.
	(layout::print_annotation_line): Likewise.
	(layout::print_leading_fixits): Likewise.
	(layout::annotation_line_showed_range_p): Likewise.
	(struct line_corrections): Likewise for field m_row.
	(line_corrections::line_corrections): Likewise for param "row".
	(layout::print_trailing_fixits): Likewise.
	(layout::get_state_at_point): Likewise.
	(layout::get_x_bound_for_row): Likewise.
	(layout::print_line): Likewise.
	(diagnostic_show_locus): Likewise for locals "last_line" and
	"row".
	(selftest::diagnostic_show_locus_c_tests): Call test_line_span.
	* input.c (selftest::test_linenum_comparisons): New function.
	(selftest::input_c_tests): Call it.
	* selftest.c (selftest::test_assertions): Test ASSERT_GT,
	ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT.
	* selftest.h (ASSERT_GT): New macro.
	(ASSERT_GT_AT): New macro.
	(ASSERT_LT): New macro.
	(ASSERT_LT_AT): New macro.

gcc/testsuite/ChangeLog:
	PR c/84852
	* gcc.dg/fixits-pr84852-1.c: New test.
	* gcc.dg/fixits-pr84852-2.c: New test.

libcpp/ChangeLog:
	* include/line-map.h (compare): New function on linenum_type.

From-SVN: r258526
2018-03-14 13:58:13 +00:00
Segher Boessenkool
1422855a40 rs6000: Fix sanitizer frame unwind on 32-bit ABIs
This fixes more than half of our testcase failures on BE.


libsanitizer/
	* sanitizer_common/sanitizer_stacktrace.cc
	(BufferedStackTrace::FastUnwindStack): Use the correct frame offset
	for PowerPC SYSV ABI.

From-SVN: r258525
2018-03-14 14:46:03 +01:00
Segher Boessenkool
def703386a combine: Don't make log_links for pc_rtx (PR84780 #c10)
distribute_links tries to place a log_link for whatever the destination
of the modified instruction is.  It shouldn't do that when that dest
is pc_rtx, which isn't actually a register.


	* combine.c (distribute_links): Don't make a link based on pc_rtx.

From-SVN: r258523
2018-03-14 13:24:21 +01:00
Martin Liska
af1430196a Fix tree statistics with -fmem-report.
2018-03-14  Martin Liska  <mliska@suse.cz>

	* tree.c (record_node_allocation_statistics): Use
	get_stats_node_kind.
	(get_stats_node_kind): New function extracted from
	record_node_allocation_statistics.
	(free_node): Use get_stats_node_kind.

From-SVN: r258521
2018-03-14 11:17:01 +00:00
Richard Biener
70458d76db tree-ssa-pre.c (compute_antic_aux): Remove code that asserts that the value-set of ANTIC_IN doesn't grow.
2018-03-14  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (compute_antic_aux): Remove code that asserts
	that the value-set of ANTIC_IN doesn't grow.

	Revert
	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
	member.
	(BB_VISITED_WITH_VISITED_SUCCS): New define.
	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.

From-SVN: r258520
2018-03-14 10:55:45 +00:00
Thomas Preud'homme
7b06ad56de Fix FAIL display for some scan-*-times directives
scan-assembler-times and scan-tree-dump-times dejagnu directives show a
different output in the summary files depending on whether they PASS or
FAIL. This means that dg-cmp-results would not show a regression because
it would not see a connection between the two output.

The difference comes from the FAIL showing the number of actual times
the pattern was match, presumably to help debugging. This patch moves
the info regarding the actual number of times the pattern match in a
separate verbose message. This keeps the message unchanged but let
developers have the required debug message with -v.

2018-03-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * lib/scanasm.exp (scan-assembler-times): Move FAIL debug info into a
    separate verbose message.
    * lib/scandump.exp (scan-dump-times): Likewise.

From-SVN: r258519
2018-03-14 10:47:32 +00:00
Julia Koval
79ab536427 Split-up -march=icelake on -march=icelake-server and -march=icelake-client
Split-up -march=icelake on -march=icelake-server and -march=icelake-client
gcc/
	* config.gcc (icelake-client, icelake-server): New.
	(icelake): Remove.
	* config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit.
	(initial_ix86_arch_features): Ditto.
	(PTA_SKYLAKE): Add SGX.
	(PTA_ICELAKE): Remove.
	(PTA_ICELAKE_CLIENT): New.
	(PTA_ICELAKE_SERVER): New.
	(ix86_option_override_internal): Split up icelake on icelake client and
	icelake server.
	(get_builtin_code_for_version): Ditto.
	(fold_builtin_cpu): Ditto.
	* config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto.
	* config/i386/i386-c.c (ix86_target_macros_internal): Ditto
	* config/i386/i386.h (processor_type): Ditto.
	* doc/invoke.texi: Ditto.

gcc/testsuite/
	* g++.dg/ext/mv16.C: Split up icelake on icelake client and
	icelake-server.
	* gcc.target/i386/funcspec-56.inc: Ditto.

libgcc/
	* config/i386/cpuinfo.h (processor_subtypes): Split up icelake on
	icelake-client and icelake-server.

From-SVN: r258518
2018-03-14 11:26:38 +01:00
Richard Sandiford
788949a374 [AArch64] Fix mul_highpart_1_run.c markup
2018-03-14  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/testsuite/
	* gcc.target/aarch64/sve/mul_highpart_1_run.c: Restrict to
	aarch64_sve_hw.

From-SVN: r258517
2018-03-14 09:12:55 +00:00
Jakub Jelinek
be9dd15c70 re PR sanitizer/83392 (FAIL: c-c++-common/ubsan/ptr-overflow-sanitization-1.c scan-tree-dump-times)
PR sanitizer/83392
	* sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also
	INTEGER_CST offset, add it together with bitpos / 8 and
	sign extend based on POINTER_SIZE.

	* c-c++-common/ubsan/ptr-overflow-sanitization-1.c: Adjust expected
	check count from 17 to 14.

From-SVN: r258516
2018-03-14 09:50:23 +01:00