1. 05 Feb, 2018 10 commits
    • Document --dynamic-list-data option for --coverage usage. · 239dc1a3
      2018-02-05  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/83879
      	* doc/gcov.texi: Document necessity of --dynamic-list-data when
      	using dlopen functionality.
      
      From-SVN: r257383
      Martin Liska committed
    • Add missing mask[z]_range[_round]_s[d,s] intrinsics · 55f956ff
      gcc/
      	* config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd,
      	_mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss,
      	_mm_maskz_range_ss, _mm_mask_range_round_ss,
      	_mm_maskz_range_round_ss): New intrinsics.
      	(__builtin_ia32_rangesd128_round)
      	(__builtin_ia32_rangess128_round): Remove.
      	(__builtin_ia32_rangesd128_mask_round,
      	__builtin_ia32_rangess128_mask_round): New builtins.
      	* config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round,
      	__builtin_ia32_rangess128_round): Remove.
      	(__builtin_ia32_rangesd128_mask_round,
      	__builtin_ia32_rangess128_mask_round): New builtins.
      	* config/i386/sse.md (ranges<mode><round_saeonly_name>): Renamed to ...
      	(ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): ... this.
      	((match_operand:VF_128 2 "<round_saeonly_nimm_predicate>"
      	"<round_saeonly_constraint>")): Changed to ...
      	((match_operand:VF_128 2 "<round_saeonly_scalar_nimm_predicate>"
      	"<round_saeonly_scalar_constraint>")): ... this.
      	("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
      	%0, %1, %2<round_saeonly_op4>, %3}"): Changed to ...
      	("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_scalar_mask_op4>%2,
      	%1, %0<mask_scalar_operand4>|%0<mask_scalar_operand4>, %1,
      	%2<round_saeonly_scalar_mask_op4>, %3}"): ... this.
      gcc/testsuite
      	* gcc.target/i386/avx512dq-vrangesd-1.c (_mm_mask_range_sd,
      	_mm_maskz_range_sd, _mm_mask_range_round_sd,
      	_mm_maskz_range_round_sd): Test new intrinsics.
      	* gcc.target/i386/avx512dq-vrangesd-2.c (_mm_range_sd,
      	_mm_mask_range_sd, _mm_maskz_range_sd, _mm_range_round_sd,
      	_mm_mask_range_round_sd, _mm_maskz_range_round_sd): Test new intrinsics.
      	* gcc.target/i386/avx512dq-vrangess-1.c (_mm_mask_range_ss,
      	_mm_maskz_range_ss, _mm_mask_range_round_ss,
      	_mm_maskz_range_round_ss): Test new intrinsics.
      	* gcc.target/i386/avx512dq-vrangess-2.c (_mm_range_ss,
      	_mm_mask_range_ss, _mm_maskz_range_ss, _mm_range_round_ss,
      	_mm_mask_range_round_ss, _mm_maskz_range_round_ss): Test new intrinsics.
      	* gcc.target/i386/avx-1.c (__builtin_ia32_rangesd128_round,
      	__builtin_ia32_rangess128_round): Remove builtins.
      	(__builtin_ia32_rangesd128_mask_round,
      	__builtin_ia32_rangess128_mask_round): Test new builtins.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      
      From-SVN: r257382
      Olga Makhotina committed
    • compiler: update iota handling, fix using iota in array length · 5dfb4d0f
          
          CL 71750 changed the definition of how iota works.  This patch updates
          gccgo for the new definition.
          
          We've been mishandling iota appearing in a type that appears in a
          const expression, as in `c = len([iota]int{})`.  Correct that by copying
          type expressions when we copy an expression.  For simplicity only copy
          when it can change the size of a type, as that is the only case where
          iota in a type can affect the value of a constant (I think).  This is
          still a bunch of changes, but almost all boilerplate.
          
          Fixes golang/go#22341
          
          Reviewed-on: https://go-review.googlesource.com/91475
      
      From-SVN: r257379
      Ian Lance Taylor committed
    • compiler: permit empty statements after fallthrough · 33cdac3b
          
          The language spec permits empty statements after a fallthrough
          statement, so implement that.  Also give a better error message when a
          fallthrough statement is in the wrong place.  The test case for this
          is in the master repository, test/fixedbugs/issue14540.go, just not
          yet in the gccgo repository.
          
          Fixes golang/go#14538
          
          Reviewed-on: https://go-review.googlesource.com/91855
      
      From-SVN: r257378
      Ian Lance Taylor committed
    • compiler: in range, evaluate array if it has receives or calls · 964c809f
          
          The last change was incomplete, in that it did not evaluate the array
          argument in some cases where it had to be evaluated.  This reuses the
          existing code for checking whether len/cap is constant.
          
          Also clean up the use of _ as the second variable in a for/range,
          which was previously inconsistent depending on whether the statement
          used = or :=.
          
          Updates golang/go#22313
          
          Reviewed-on: https://go-review.googlesource.com/91715
      
      From-SVN: r257377
      Ian Lance Taylor committed
    • compiler: give error for non-int arguments to make · 4cff15ea
          
          This implements a requirement of the language spec.
          
          While we're here fix the value returned by the type method of a
          builtin call expression to make, although this doesn't seem to make
          any difference anywhere since we lower this to a runtime call before
          the determine_types pass anyhow.
          
          There is already a test for this error in the master repository:
          test/fixedbugs/issue16949.go. It just hasn't made it into the gccgo
          testsuite yet.
          
          Fixes golang/go#16949
          
          Reviewed-on: https://go-review.googlesource.com/91697
      
      From-SVN: r257376
      Ian Lance Taylor committed
    • compiler: don't error for goto over type or const declaration · 91cb7f78
          
          We should only issue an error for a goto over a var declaration.
          
          The test case for this is already in the master repository, at
          test/fixedbugs/issue8042.go.  It just hasn't been copied into the
          gccgo repository yet.
          
          Fixes golang/go#19089
          
          Reviewed-on: https://go-review.googlesource.com/91696
      
      From-SVN: r257375
      Ian Lance Taylor committed
    • compiler: correct parse of parenthesized select case · 6ac0aed8
          
          We used to mishandle `select { case (<-c): }` and friends.
          
          The test case for this is https://golang.org/cl/91657.
          
          Fixes golang/go#20923
          
          Reviewed-on: https://go-review.googlesource.com/91695
      
      From-SVN: r257374
      Ian Lance Taylor committed
    • cmd/go: don't lose last flag from _cgo_flags · 59597e37
          
          The quoting code that read _cgo_flags, currently only in the gccgo
          version of cmd/go, was losing the last flag read from the file.
          
          Fixes golang/go#23666
          
          Reviewed-on: https://go-review.googlesource.com/91655
      
      From-SVN: r257373
      Ian Lance Taylor committed
    • Daily bump. · 56d6cc37
      From-SVN: r257372
      GCC Administrator committed
  2. 04 Feb, 2018 6 commits
  3. 03 Feb, 2018 3 commits
  4. 02 Feb, 2018 21 commits
    • * pt_BR.po: Update. · 635ace2c
      From-SVN: r257350
      Joseph Myers committed
    • c-common.h (DECL_UNNAMED_BIT_FIELD): New. · 7c30b12a
      /c-family
      2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* c-common.h (DECL_UNNAMED_BIT_FIELD): New.
      
      /c
      2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* c-typeck.c (really_start_incremental_init, push_init_level,
      	set_nonincremental_init, output_init_element, process_init_element):
      	Use DECL_UNNAMED_BIT_FIELD.
      
      /cp
      2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* class.c (is_really_empty_class): Use DECL_UNNAMED_BIT_FIELD.
      	* constexpr.c (cx_check_missing_mem_inits): Likewise.
      	* decl.c (next_initializable_field, find_decomp_class_base,
      	cp_finish_decomp): Likewise.
      	* typeck2.c (process_init_constructor_record): Likewise.
      
      From-SVN: r257348
      Paolo Carlini committed
    • decl.c (array_type_has_nonaliased_component): Return false if the component type is a pointer. · dacdc68f
      	* gcc-interface/decl.c (array_type_has_nonaliased_component): Return
      	false if the component type is a pointer.
      
      From-SVN: r257344
      Eric Botcazou committed
    • re PR lto/83954 (LTO: Bogus -Wlto-type-mismatch warning for array of pointer to incomplete type) · ee034d31
      	PR lto/83954
      	* lto-symtab.c (warn_type_compatibility_p): Do not recurse into the
      	component type of array types with non-aliased component.
      
      From-SVN: r257343
      Eric Botcazou committed
    • powerpcspe.opt: Add Undocumented to irrelevant options. · aa81b142
             * config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant
             options.
             * config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value):
             Remove all values except native, 8540 and 8548.
      
      From-SVN: r257342
      Andrew Jenner committed
    • i386: Pass INVALID_REGNUM as invalid register number · 88157461
      	* config/i386/i386.c (ix86_output_function_return): Pass
      	INVALID_REGNUM, instead of -1, as invalid register number to
      	indirect_thunk_name and output_indirect_thunk.
      
      From-SVN: r257340
      H.J. Lu committed
    • PR c++/84181 - ICE with lambda parm in template argument. · b7d8e7e5
      	* tree.c (strip_typedefs_expr): Use cp_tree_operand_length.
      
      From-SVN: r257339
      Jason Merrill committed
    • dec_parameter_1.f (sub1): Remove statement with no effect. · 113db472
      	* gfortran.dg/dec_parameter_1.f (sub1): Remove statement with no effect.
      	* gfortran.dg/dec_parameter_2.f90 (sub1): Ditto.
      
      From-SVN: r257337
      Uros Bizjak committed
    • vec-cmpne-long.c: Add p8vector_hw require to dg-do run stanza. · 24fa220c
      [testsuite]
      
      2018-02-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/vec-cmpne-long.c: Add p8vector_hw require to
      	dg-do run stanza.
      
      From-SVN: r257336
      Will Schmidt committed
    • fold-vec-abs-int.p9.c: Add powerpc_p9vector_ok requirement. · 17855935
      [testsuite]
      
      2018-01-31  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-abs-int.p9.c: Add powerpc_p9vector_ok
      	requirement.
      	* gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c: Same.
      	* gcc.target/powerpc/fold-vec-cmp-char.p9.c: Same.
      	* gcc.target/powerpc/fold-vec-neg-int.p9.c: Same.
      
      From-SVN: r257335
      Will Schmidt committed
    • go-gcc.cc (Gcc_backend::type_size): Return 0 for void_type_node. · c2a0fe56
      	* go-gcc.cc (Gcc_backend::type_size): Return 0 for
      	void_type_node.
      	(Gcc_backend::convert_expression): Don't convert if the type of
      	expr_tree is void_type_node.
      	(Gcc_backend::array_index_expression): Don't index if the type of
      	the array expression is void_type_node.
      	(Gcc_backend::init_statement): Don't initialize if the type of the
      	initializer expression is void_type_node.
      	(Gcc_backend::assignment_statement): Don't assign if the type of
      	either the left or right hand side is void_type_node.
      	(Gcc_backend::temporary_variable): Don't initialize if the type of
      	the initializer expression is void_type_node.
      
      From-SVN: r257334
      Ian Lance Taylor committed
    • re PR testsuite/52641 (Test cases fail for 16-bit int targets) · 584d9d58
      	PR testsuite/52641
      	* gcc.c-torture/execute/pr83362.c: Make work for int16.
      	* gcc.dg/Wsign-conversion.c: Dito.
      	* gcc.dg/attr-alloc_size-4.c: Dito.
      	* gcc.dg/pr81020.c: Dito.
      	* gcc.dg/pr81192.c: Dito.
      	* gcc.dg/pr83463.c (dg-options): Add -Wno-pointer-to-int-cast.
      	* gcc.dg/attr-alloc_size-11.c: Also special-case avr.
      	* gcc.dg/pr83844.c: Restrict to int32plus.
      	* gcc.dg/attr-alloc_size-3.c: Restrict to size32plus.
      	* gcc.dg/tree-ssa/ldist-25.c: Dito.
      	* gcc.dg/tree-ssa/ldist-27.c: Dito.
      	* gcc.dg/tree-ssa/ldist-28.c: Dito.
      	* gcc.dg/tree-ssa/ldist-29.c: Dito.
      	* gcc.dg/tree-ssa/ldist-30.c: Dito.
      	* gcc.dg/tree-ssa/ldist-31.c: Dito.
      	* gcc.dg/tree-ssa/ldist-32.c: Dito.
      	* gcc.dg/tree-ssa/ldist-33.c: Dito.
      	* gcc.dg/tree-ssa/ldist-34.c: Dito.
      	* gcc.dg/tree-ssa/ldist-35.c: Dito.
      	* gcc.dg/tree-ssa/ldist-36.c: Dito.
      
      From-SVN: r257333
      Georg-Johann Lay committed
    • Add -march=icelake. · 02da1e9c
      gcc/
      	* config.gcc: Add -march=icelake.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake.
      	* config/i386/i386.c (processor_costs): Add m_ICELAKE.
      	(PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2,
      	PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New.
      	(processor_target_table): Add icelake.
      	(ix86_option_override_internal): Handle new PTAs.
      	(get_builtin_code_for_version): Handle icelake.
      	(M_INTEL_COREI7_ICELAKE): New.
      	(fold_builtin_cpu): Handle icelake.
      	* config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New.
      	* doc/invoke.texi: Add -march=icelake.
      gcc/testsuite/
      	* gcc.target/i386/funcspec-56.inc: Handle new march.
      	* g++.dg/ext/mv16.C: Ditto.
      libgcc/
      	* config/i386/cpuinfo.h (processor_subtypes): Add INTEL_COREI7_ICELAKE.
      
      From-SVN: r257331
      Julia Koval committed
    • compiler: don't incorrectly evaluate range variable · 31766e68
          
          The language spec says that in `for i = range x`, in which there is no
          second iteration variable, if len(x) is constant, then x is not
          evaluated.  This only matters when x is an expression that panics but
          whose type is an array type; in such a case, we should not evaluate x,
          since len of any array type is a constant.
          
          Fixes golang/go#22313
          
          Reviewed-on: https://go-review.googlesource.com/91555
      
      From-SVN: r257330
      Ian Lance Taylor committed
    • Move omp bitmask to general to use it in x86 backend. · eece7fe5
      gcc/c-family/
      	* c-common.h (omp_clause_mask): Move to wide_int_bitmask.h.
      
      gcc/
      	* config/i386/i386.c (ix86_option_override_internal): Change flags type
      	to wide_int_bitmask.
      	* wide-int-bitmask.h: New.
      
      From-SVN: r257329
      Julia Koval committed
    • Reduce fallout for avr. · ce2e6077
      	* lib/target-supports.exp
      	(check_effective_target_keeps_null_pointer_checks): No more
      	special-case avr.
      	* gcc.dg/tree-ssa/pr21086.c (dg-final): Special-case avr.
      	* gcc.dg/ifcvt-4.c: Skip avr.
      	* gcc.dg/pr53037-1.c: Dito.
      	* gcc.dg/pr53037-2.c: Dito.
      	* gcc.dg/pr53037-3.c: Dito.
      	* gcc.dg/pr63387-2.c: Dito.
      	* gcc.dg/pr63387.c: Dito.
      	* gcc.dg/sancov/cmp0.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-1.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-10.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-11.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-1b.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-2.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-3.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-4.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-5.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-6.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-7.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-8.c: Dito.
      	* gcc.dg/tree-ssa/loop-interchange-9.c: Dito.
      	* gcc.dg/tree-ssa/pr82059.c: Dito.
      	* gcc.c-torture/execute/pr70460.c: Dito.
      
      From-SVN: r257328
      Georg-Johann Lay committed
    • re PR testsuite/52641 (Test cases fail for 16-bit int targets) · 5c1aec7e
      	PR testsuite/52641
      	* gcc.c-torture/execute/pr81913.c: Use types that also work for int16.
      	* gcc.c-torture/execute/20180112-1.c: Dito.
      	* gcc.c-torture/execute/pr81503.c: Dito.
      	* gcc.dg/store_merging_12.c: Dito.
      	* gcc.dg/tree-ssa/loop-niter-1.c: Dito.
      	* gcc.dg/tree-ssa/loop-niter-2.c: Dito.
      	* gcc.dg/tree-ssa/pr80898.c: Dito.
      	* gcc.dg/tree-ssa/pr82363.c: Dito.
      	* gcc.dg/utf16-4.c: Also allow "short unsigned int" in dg-warning.
      	* gcc.dg/tree-ssa/pr81346-5.c: Special-case int16.
      	* gcc.dg/tree-ssa/ssa-sink-11.c: Dito.
      	* gcc.dg/tree-ssa/ssa-sink-12.c: Dito.
      	* gcc.dg/torture/pr81814.c: Restrict to int32plus.
      	* gcc.dg/tree-ssa/pr80803.c: Dito.
      	* gcc.dg/tree-ssa/pr80898-2.c: Dito.
      	* gcc.dg/tree-ssa/pr81346-4.c: Dito.
      	* gcc.dg/tree-ssa/vrp114.c: Dito.
      	* gcc.dg/tree-ssa/pr82574.c: Restrict to size32plus.
      	* gcc.dg/tree-ssa/ssa-dom-thread-13.c: Dito.
      	* gcc.dg/tree-ssa/ssa-sink-15.c: Dito.
      
      From-SVN: r257327
      Georg-Johann Lay committed
    • PR84066 Wrong shadow stack register size is saved for x32 · e8a5a6f6
      x32 is a 64-bit process with 32-bit software pointer and kernel may
      place x32 shadow stack above 4GB.  We need to save and restore 64-bit
      shadow stack register for x32. builtin jmp buf size is 5 pointers.  We
      have space to save 64-bit shadow stack pointers: 32-bit SP, 32-bit FP,
      32-bit IP, 64-bit SSP for x32.
      
      	PR target/84066
      	* gcc/config/i386/i386.md: Replace Pmode with word_mode in
      	builtin_setjmp_setup and builtin_longjmp to support x32.
      	* gcc/testsuite/gcc.target/i386/cet-sjlj-6a.c: New test.
      	* gcc/testsuite/gcc.target/i386/cet-sjlj-6b.c: Likewise.
      
      From-SVN: r257326
      Igor Tsimbalist committed
    • PR c++/84160 - ICE with nested variadic capture. · fe23b12a
      	* lambda.c (is_capture_proxy_with_ref): New.
      	(insert_capture_proxy): Don't set DECL_CAPTURED_VARIABLE from a
      	COMPONENT_REF.
      	* expr.c (mark_use): Use is_capture_proxy_with_ref.
      	* constexpr.c (potential_constant_expression_1): Likewise.
      	* semantics.c (process_outer_var_ref): Likewise.
      
      From-SVN: r257325
      Jason Merrill committed
    • reflect: enable allocation tests · 60a57222
          
          They were disabled due to the lack of escape analysis. Now that
          we have escape analysis, unskip these tests.
          
          Reviewed-on: https://go-review.googlesource.com/86248
      
      From-SVN: r257324
      Ian Lance Taylor committed
    • runtime: scan register backing store on ia64 · 38f08ec0
          
          On ia64, a separate stack is used for saving/restoring register frames,
          occupying the other end of the stack mapping. This must also be scanned
          for pointers into the heap.
          
          Reviewed-on: https://go-review.googlesource.com/85276
      
      From-SVN: r257323
      Ian Lance Taylor committed