1. 27 Nov, 2017 10 commits
    • re PR c++/81675 (attribute(noreturn) of destructor in :? not honored) · cb358080
      	PR c++/81675
      	* cp-gimplify.c (cp_fold) <case COND_EXPR>: Don't return immediately
      	for VOID_TYPE_P COND_EXPRs, instead fold the operands and if op0 is
      	INTEGER_CST, ensure that both op1 and op2 are non-NULL and fall
      	through into normal folding, otherwise just rebuild x if any op
      	changed.
      
      	* g++.dg/warn/pr81675.C: New test.
      
      From-SVN: r255167
      Jakub Jelinek committed
    • Fix UB in hash-map.h · 04f91503
      bootstrap-ubsan shows:
        gcc/hash-map.h:277:19: runtime error: member access within null pointer of type 'struct hash_map'
      
      Fix the issue by returning early.
      
      From-SVN: r255166
      Markus Trippelsdorf committed
    • cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll. · ff27462e
      	* cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
      	* loop-unroll.c (decide_unroll_constant_iterations): Implement it.
      	(decide_unroll_runtime_iterations): Likewise.
      	(decide_unroll_stupid): Likewise.
      
      From-SVN: r255165
      Eric Botcazou committed
    • Fix code generation for buildtin_longjmp with CET. · 39335d14
      According to the description of  inssp instruction from Intel CET it
      adusts the shadow stack pointer (ssp) only by value in the range of
      [0..255]. As a number of adjustment could be greater than 255 there
      should be a loop generated to adjust ssp.
      
      gcc/
      	* config/i386/i386.md: Add a loop with incssp.
      	* testsuite/gcc.target/i386/cet-sjlj-1.c: Fix test.
      	* testsuite/gcc.target/i386/cet-sjlj-4.c: Likewise.
      
      From-SVN: r255164
      Igor Tsimbalist committed
    • [PR 81248] Fix ipa-sra size check · be025a2d
      2017-11-27  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/81248
      	* tree-sra.c (splice_param_accesses): Remove size check.
      	(decide_one_param_reduction): Fix size check.
      	* gimple-pretty-print.c (dump_profile): Silence warning.
      	* params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
      
      	testsuite/
      	* g++.dg/ipa/pr81248.C: New test.
      	* gcc.dg/tree-ssa/ssa-pre-31.c: Disable IPA-SRA.
      	* gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-2.c: Likewise.
      
      From-SVN: r255163
      Martin Jambor committed
    • null-8.C (bar): New function. · 8cb71598
      	* g++.dg/ubsan/null-8.C (bar): New function.
      	(foo): Use bar instead of __builtin_printf.
      
      From-SVN: r255162
      Jakub Jelinek committed
    • re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs) · b8cb3096
      	PR debug/81307
      	* dbxout.c (lastlineno): New variable.
      	(dbx_debug_hooks): Use dbxout_switch_text_section as
      	switch_text_section debug hook.
      	(dbxout_function_end): Switch to current_function_section
      	rather than function_section.  If crtl->has_bb_partition,
      	output just one N_FUN, depending on in_cold_section_p.
      	(dbxout_source_line): Remember last lineno in lastlineno.
      	(dbxout_switch_text_section): New function.
      	(dbxout_function_decl): Adjust dbxout_block caller.
      	(dbx_block_with_cold_children): New function.
      	(dbxout_block): Return true if any LBRAC/RBRAC have been
      	emitted.  Use dbx_block_with_cold_children at depth == 0
      	in second partition.  Add PARENT_BLOCKNUM argument, pass
      	it optionally adjusted to children.  Output LBRAC/RBRAC
      	around recursive call only if the block is in the current
      	partition, if not and anything was output, emit empty
      	range LBRAC/RBRAC.
      	* final.c (final_scan_insn): Compute cold_function_name
      	before calling switch_text_section debug hook.  Call
      	that hook even if dwarf2out_do_frame if not emitting
      	dwarf debug info.
      
      	* g++.dg/debug/debug9.C: Remove -fno-reorder-blocks-and-partition
      	workaround.
      
      From-SVN: r255161
      Jakub Jelinek committed
    • re PR target/83100 (powerpc: internal compiler error: in get_variable_section,… · 9adeb64a
      re PR target/83100 (powerpc: internal compiler error: in get_variable_section, at varasm.c:1150 with -fdata-sections)
      
      	PR target/83100
      	* varasm.c (bss_initializer_p): Return true for DECL_COMMON
      	TREE_READONLY decls.
      
      	* gcc.dg/pr83100-1.c: New test.
      	* gcc.dg/pr83100-2.c: New test.
      	* gcc.dg/pr83100-3.c: New test.
      	* gcc.dg/pr83100-4.c: New test.
      
      From-SVN: r255160
      Jakub Jelinek committed
    • Fix PR82488 - signed integer overflow in expr.c · 99282f81
      bootstrap-ubsan shows:
       gcc/expr.c:4103:17: runtime error: signed integer overflow: 0 - -9223372036854775808 cannot be represented in type 'long int'
      
      Fix by handling the saw_unknown case earlier.
      
      	PR rtl-optimization/82488
      	* expr.c (fixup_args_size_notes): Avoid signed integer overflow.
      
      diff --git a/gcc/expr.c b/gcc/expr.c
      index ee07de5aaa44..e9d8555c9452 100644
      --- a/gcc/expr.c
      +++ b/gcc/expr.c
      @@ -4100,10 +4100,13 @@ fixup_args_size_notes (rtx_insn *prev, rtx_insn *last, int end_args_size)
             if (STACK_GROWS_DOWNWARD)
       	this_delta = -(unsigned HOST_WIDE_INT) this_delta;
      
      -      args_size -= this_delta;
      +      if (saw_unknown)
      +	args_size = INT_MIN;
      +      else
      +	args_size -= this_delta;
           }
      
      -  return saw_unknown ? INT_MIN : args_size;
      +  return args_size;
       }
      
       #ifdef PUSH_ROUNDING
      --
      Markus
      
      From-SVN: r255159
      Markus Trippelsdorf committed
    • Daily bump. · 62e8530c
      From-SVN: r255158
      GCC Administrator committed
  2. 26 Nov, 2017 3 commits
    • i386.c (processor_target_table): Add skylake_cost for skylake-avx512. · c234d831
      	* config/i386/i386.c (processor_target_table): Add skylake_cost for
      	skylake-avx512.
      	* config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
      	skylake_cost): New.
      
      	* config/i386/driver-i386.c (host_detect_local_cpu):
      	Detect skylake-avx512.
      
      	* config.gcc: Add -march=cannonlake.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
      	* config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
      	(PTA_CANNONLAKE): New.
      	(processor_target_table): Add cannonlake.
      	(ix86_option_override_internal): Ditto.
      	(fold_builtin_cpu): Ditto.
      	(get_builtin_code_for_version): Handle cannonlake.
      	(M_INTEL_COREI7_CANNONLAKE): New.
      	* config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
      	* doc/invoke.texi: Add -march=cannonlake.
      
      gcc/testsuite/
      
      	* gcc.target/i386/funcspec-56.inc: Handle new march.
      	* g++.dg/ext/mv16.C: Ditto.
      
      libgcc/
      
      	* config/i386/cpuinfo.c (get_intel_cpu): Handle cannonlake.
      	* config/i386/cpuinfo.h (processor_subtypes): Add
      	INTEL_COREI7_CANNONLAKE.
      
      From-SVN: r255155
      Uros Bizjak committed
    • Plugin support on Windows/MinGW · 8c7dbea9
      config/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* gcc-plugin.m4: Add support for MinGW.
      
      gcc/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* plugin.c (add_new_plugin): Use platform-specific library extensions.
      	(try_init_one_plugin): Alternative implementation for MinGW.
      	* Makefile.in (plugin_implib): New.
      	(gengtype-lex.c): Fix broken AIX workaround.
      	* configure: Regenerate.
      	* doc/plugins.texi: Document support for MinGW.
      
      gcc/c/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* Make-lang.in (c.install-plugin): Install backend import library.
      
      gcc/cp/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* Make-lang.in (c++.install-plugin): Install backend import library.
      
      libcc1/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* configure: Regenerate.
      
      From-SVN: r255154
      Boris Kolpackov committed
    • Daily bump. · 44dfb822
      From-SVN: r255153
      GCC Administrator committed
  3. 25 Nov, 2017 4 commits
  4. 24 Nov, 2017 14 commits
  5. 23 Nov, 2017 9 commits
    • [ARM] Fix Dot Product NEON intrinsics · 117e6b50
      2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* config/arm/arm_neon.h: Fix pragma GCC push_options before
      	vdot_u32.
      
      From-SVN: r255126
      Christophe Lyon committed
    • re PR ada/83091 (ICE with -g in arm-eabi compilation) · 773076a5
      	PR ada/83091
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not build a variant
      	type for the implementation type of a packed array.
      
      From-SVN: r255125
      Eric Botcazou committed
    • Add [[nodiscard]] attribute to C++17 components · d69f1ec7
      	* include/bits/fs_path.h (path::empty): Add nodiscard attribute.
      	* include/bits/range_access.h (empty): Likewise.
      	* include/std/string_view (basic_string_view::empty): Likewise.
      	* testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
      	test.
      	* testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
      	* testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
      
      From-SVN: r255124
      Jonathan Wakely committed
    • PR libstdc++/83134 Ensure std::__not_ converts B::value to bool · 4b9840f2
      	PR libstdc++/83134
      	* include/std/type_traits (__not_): Explicitly convert to bool.
      	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
      	* testsuite/20_util/logical_traits/83134.cc: New test.
      	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
      	dg-error.
      	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
      	Likewise.
      
      From-SVN: r255122
      Jonathan Wakely committed
    • Enable VBMI2 support [3/7] · de860379
      gcc/
      	config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
      	_mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
      	_mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
      	_mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
      	_mm512_maskz_expandloadu_epi16): New intrinsics.
      	config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
      	_mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
      	_mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
      	_mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
      	_mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
      	_mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
      	_mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
      	_mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
      	_mm256_maskz_expandloadu_epi8): New intrinsics.
      	config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
      	V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
      	V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
      	V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
      	config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
      	config/i386/sse.md (VI248_VLBW): New iterator.
      	(expand<mode>_mask, expand<mode>_maskz): New patterns.
      
      gcc/testsuite/
      	gcc.target/i386/avx512f-vpexpandb-1.c: New test.
      	gcc.target/i386/avx512f-vpexpandb-2.c: Ditto.
      	gcc.target/i386/avx512f-vpexpandw-1.c: Ditto.
      	gcc.target/i386/avx512f-vpexpandw-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpexpandb-1.c: Ditto.
      	gcc.target/i386/avx512vl-vpexpandb-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpexpandw-1.c: Ditto.
      	gcc.target/i386/avx512vl-vpexpandw-2.c: Ditto.
      
      From-SVN: r255121
      Julia Koval committed
    • Enable VBMI2 support [2/7] · 11cca3ca
      gcc/
      	config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
      	config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
      	_mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
      	_mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
      	_mm512_mask_compressstoreu_epi16): New.
      	config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
      	_mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
      	_mm_mask_compress_epi16, _mm_maskz_compress_epi16,
      	_mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
      	_mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
      	_mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
      	_mm256_mask_compressstoreu_epi8): New.
      	config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
      	VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
      	VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
      	VOID_FTYPE_PV8HI_V8HI_UQI): New types.
      	config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
      	__builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
      	__builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
      	__builtin_ia32_compresshi128_mask,
      	__builtin_ia32_compressstoreuqi512_mask,
      	__builtin_ia32_compressstoreuhi512_mask,
      	__builtin_ia32_compressstoreuqi256_mask,
      	__builtin_ia32_compressstoreuqi128_mask,
      	__builtin_ia32_compressstoreuhi256_mask,
      	__builtin_ia32_compressstoreuhi128_mask): New builtins.
      	config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
      	array for flags2.
      	(ix86_expand_special_args_builtin): Handle new types.
      	(s4fma_expand): Handle new builtin array.
      	config/i386/immintrin.h: Include new headers.
      	config/i386/sse.md (VI12_AVX512VLBW): New iterator.
      	(compress<mode>_mask, compressstore<mode>_mask): New patterns.
      
      gcc/testsuite/
      	gcc.target/i386/avx512-check.h: Handle AVX512VBMI2 bit.
      	gcc.target/i386/avx512f-vpcompressb-1.c: New test.
      	gcc.target/i386/avx512f-vpcompressb-2.c: Ditto.
      	gcc.target/i386/avx512f-vpcompressw-1.c: Ditto.
      	gcc.target/i386/avx512f-vpcompressw-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpcompressb-1.c: Ditto.
      	gcc.target/i386/avx512vl-vpcompressb-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpcompressw-1.c: Ditto.
      	gcc.target/i386/avx512vl-vpcompressw-2.c: Ditto.
      	gcc.target/i386/i386.exp (check_effective_target_avx512vbmi2): New.
      
      From-SVN: r255119
      Julia Koval committed
    • rs6000.c (rs6000_gimple_fold_builtin): Formatting fixes. · cd761692
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
      	fixes.  Declare temp and g variables at the top in order to avoid
      	{} in most of the cases.
      
      From-SVN: r255118
      Jakub Jelinek committed
    • parser.c (cp_parser_omp_declare): Change return type to bool from void, return… · 9c378aa9
      parser.c (cp_parser_omp_declare): Change return type to bool from void, return true for declare simd.
      
      	* parser.c (cp_parser_omp_declare): Change return type to bool from
      	void, return true for declare simd.
      	(cp_parser_pragma): Return cp_parser_omp_declare returned value
      	rather than always false.
      
      From-SVN: r255117
      Jakub Jelinek committed
    • c-parser.c (c_parser_omp_declare_simd): Reject declare simd in pragma_stmt context. · 41521dee
      	* c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
      	pragma_stmt context.
      
      	* gcc.dg/gomp/declare-simd-1.c (f9): Remove.
      	* gcc.dg/gomp/declare-simd-5.c: New test.
      
      From-SVN: r255116
      Jakub Jelinek committed