1. 02 Dec, 2017 5 commits
    • final: Improve output for -dp and -fverbose-asm · dff125eb
      This improves the assembler output (for -dp and -fverbose-asm) in
      several ways.  It always prints the insn_cost.  It does not print
      "[length = NN]" but "[c=NN l=NN]", to save space.  It does not add one
      to the instruction alternative number (everything else starts counting
      those at 0, too).  And finally, it tries to keep things lined up in
      columns a bit better.
      
      
      	* final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
      	which_alternative instead of which_alternative + 1.
      	(output_asm_insn): Print an extra tab if the template is short.
      
      From-SVN: r255348
      Segher Boessenkool committed
    • runtime: export cgoCheck functions · 79c9f765
          
          The functions cgoCheckPointer and cgoCheckResult are called by code
          generated by cgo. That means that we need to export them using
          go:linkname, as otherwise they are local symbols. The cgo code
          currently uses weak references to only call the symbols if they are
          defined, which is why it has been working--the cgo code has not been
          doing any checks.
          
          Reviewed-on: https://go-review.googlesource.com/80295
      
      From-SVN: r255347
      Ian Lance Taylor committed
    • compiler: avoid GCC middle-end control warnings · 9638589f
          
          GCC has started emitting "control reaches end of non-void function"
          warnings. Avoid them for Go by 1) marking the builtin function panic
          and the compiler-generated function __go_runtime_error as not
          returning and 2) adding a default case to the switch used for select
          statements that simply calls __builtin_unreachable.
          
          Fixes golang/go#22767
          
          Reviewed-on: https://go-review.googlesource.com/80416
      
      	* go-gcc.cc (Gcc_backend::Gcc_backend): Define
      	__builtin_unreachable.
      	(Gcc_backend::function): Add does_not_return parameter.
      
      From-SVN: r255346
      Ian Lance Taylor committed
    • Delete obsolete DWARF1 references. · d7d5f241
      	gcc/
      	* common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
      	comment.
      	* config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
      	* doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
      	reference.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r255345
      Jim Wilson committed
    • Daily bump. · 8d7de039
      From-SVN: r255344
      GCC Administrator committed
  2. 01 Dec, 2017 35 commits
    • re PR target/81959 (PowerPC __float128 optimization fails with integer PRE_INC addresses) · b2db7624
      [gcc]
      2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81959
      	* config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
      	whether we can allocate pseudos before trying to fix an address.
      	* config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
      	memory address is indexed or indirect.
      	(floatuns_<mode>si2_hw2): Likewise.
      
      [gcct/testsuite]
      2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81959
      	* gcc.target/powerpc/pr81959.c: New test.
      
      From-SVN: r255341
      Michael Meissner committed
    • compiler: introduce size threshold for nil checks · 92f0112c
          
          Add a new control variable to the Gogo class that stores the size
          threshold for nil checks. This value can be used to control the
          policy for deciding when a given deference operation needs a check and
          when it does not. A size threshold of -1 means that every potentially
          faulting dereference needs an explicit check (and branch to error
          call). A size threshold of K (where K > 0) means that if the size of
          the object being dereferenced is >= K, then we need a check.
          
          Reviewed-on: https://go-review.googlesource.com/80996
      
      	* go-c.h (go_create_gogo_args): Add nil_check_size_threshold
      	field.
      	* go-lang.c (go_langhook_init): Set nil_check_size_threshold.
      
      From-SVN: r255340
      Than McIntosh committed
    • * doc/extend.texi: Mention C++14 library complex suffix. · 19041dad
      From-SVN: r255339
      Jason Merrill committed
    • Give #include hints for <complex>. · b3e862e0
      	* name-lookup.c (get_std_name_hint): Add <complex>.
      	* parser.c (cp_parser_diagnose_invalid_type_name): Call
      	suggest_alternative_in_explicit_scope.
      	(cp_parser_namespace_name): Likewise.
      
      From-SVN: r255336
      Jason Merrill committed
    • PR c++/79228 - extensions hide C++14 complex literal operators · f2b8b8ad
      libcpp/
      	* expr.c (interpret_float_suffix): Ignore 'i' in C++14 and up.
      	(interpret_int_suffix): Likewise.
      gcc/cp/
      	* parser.c (cp_parser_userdef_numeric_literal): Be helpful about
      	'i' in C++14 and up.
      
      From-SVN: r255335
      Jason Merrill committed
    • * Makefile.in (TAGS): Add c-family/*.cc. · 0951904f
      From-SVN: r255334
      Jason Merrill committed
    • [AArch64] Fix address printing on ILP32 · d6591257
      Fix address printing for ILP32.  The md file uses 'a' in assembler
      templates for symbolic addresses in adrp/add, which end up calling
      aarch64_print_operand_address.  However in ILP32 these are not valid
      memory addresses (being ptr_mode rather than Pmode), so the assert
      triggers.  Since it is incorrect to use symbols in memory addresses
      (besides literal pool accesses), change the 'a' to 'c' in the md file.
      
      Skip one failing test in ILP32 which combines the 'p' modifier with the 'a'
      assembler template to fake a memory reference.
      
          gcc/
      	* config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
      	(call_value_insn): Likewise.
      	(sibcall_insn): Likewise.
      	(sibcall_value_insn): Likewise.
      	(movsi_aarch64): Likewise.
      	(movdi_aarch64): Likewise.
      	(add_losym_): Likewise.
      	(ldr_got_small_): Likewise.
      	(ldr_got_small_sidi): Likewise.
      	(ldr_got_small_28k_): Likewise.
      	(ldr_got_small_28k_sidi): Likewise.
      	* config/aarch64/aarch64.c (aarch64_print_address_internal):
      	Move output_addr_const to symbolic case. Add error check.
          testsuite/
      	* gcc.dg/asm-4.c: Skip on AArch64 with ILP32 as test is incorrect.
      
      From-SVN: r255333
      Wilco Dijkstra committed
    • Fix an undefined behavior in fortran/decl.c · 8a302cb2
      From-SVN: r255332
      Qing Zhao committed
    • re PR fortran/83224 (creating character array from elements shorter than… · 1cde289f
      re PR fortran/83224 (creating character array from elements shorter than declared does not pad with whitespace properly and aborts)
      
      2017-12-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/83224
      	* frontend-passes.c (create_var): Also handle
      	character arrays, handling deferred lenghts.
      
      2017-12-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/83224
      	* gfortran.dg/dependency_51.f90: New test.
      
      From-SVN: r255331
      Thomas Koenig committed
    • Fix narrowing conversions in string_view types · ad8fda29
      	* include/experimental/string_view (basic_string_view::_S_compare):
      	Use value-init so narrowing conversions are not ill-formed.
      	* include/std/string_view (basic_string_view::_S_compare): Likewise.
      
      From-SVN: r255321
      Jonathan Wakely committed
    • Disable -Wliteral-suffix for standard UDLs · f03858e5
      	* include/bits/basic_string.h (operator""s): Add pragmas to disable
      	-Wliteral-suffix warnings.
      	* include/experimental/string_view (operator""sv): Likewise.
      	* include/std/chrono (operator""h, operator""min, operator""s)
      	(operator""ms, operator""us, operator""ns): Likewise.
      	* include/std/complex (operator""if, operator""i, operator""il):
      	Likewise.
      	* include/std/string_view (operator""sv): Likewise.
      	* testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
      
      From-SVN: r255320
      Jonathan Wakely committed
    • S/390: Split MVC instruction for better forwarding · f9dcf14a
      Certain lengths used in an MVC instruction might disable operand
      forwarding.  Split MVCs into up to 2 forwardable ones if possible.
      
      gcc/ChangeLog:
      
      2017-12-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/predicates.md (plus16_Q_operand): New predicate.
      	* config/s390/s390.md: Disable MVC merging peephole if it would
      	disable operand forwarding.
      	(new peephole2): Split MVCs if it would turn them into up to 2
      	forwardable MVCs.
      
      From-SVN: r255319
      Andreas Krebbel committed
    • Add comment to fix -Wfallthrough warning · ccd9a1e0
      	* include/bits/locale_facets_nonio.tcc (money_get::_M_extract): Add
      	fallthrough comment.
      
      From-SVN: r255318
      Jonathan Wakely committed
    • Fix -Wempty-body warnings for debug assertions · b7b61489
      	* include/bits/node_handle.h (_Node_handle_common::operator=)
      	(_Node_handle_common::_M_swap): Add braces around debug assertions.
      
      From-SVN: r255317
      Jonathan Wakely committed
    • Use const char* to fix -Wwrite-strings warning · f1338a2d
      	* include/ext/ropeimpl.h (rope::_S_dump): Use const char*.
      
      From-SVN: r255316
      Jonathan Wakely committed
    • Add [[noreturn]] attributes to fix warning · c85d1992
      	* libsupc++/nested_exception.h (__throw_with_nested_impl): Add
      	noreturn attribute.
      
      From-SVN: r255315
      Jonathan Wakely committed
    • Remove stray semi-colons at namespace scope · 071f228f
      	* include/bits/regex_executor.tcc (_Executor::_M_rep_once_more):
      	Remove semi-colon after function body.
      	* include/bits/uniform_int_dist.h (_Power_of_2): Likewise.
      
      From-SVN: r255314
      Jonathan Wakely committed
    • Use value-init syntax in std::__detail::__airy · e735008b
      	* include/tr1/modified_bessel_func.tcc (__airy): Use value-init not
      	list-init.
      
      From-SVN: r255313
      Jonathan Wakely committed
    • Add noexcept to std::integral_constant members · 352111c5
      	* include/std/type_traits (integral_constant): Make member functions
      	noexcept (LWG 2346).
      	* include/std/utility (integer_sequence): Likewise.
      
      From-SVN: r255312
      Jonathan Wakely committed
    • re PR fortran/82605 ([PDT] ICE in insert_parameter_exprs, at fortran/decl.c:3154) · 276515e6
      2017-12-01  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82605
      	* resolve.c (get_pdt_constructor): Initialize 'cons' to NULL.
      	(resolve_pdt): Correct typo in prior comment. Emit an error if
      	any parameters are deferred and the object is neither pointer
      	nor allocatable.
      
      	PR fortran/82606
      	* decl.c (gfc_get_pdt_instance): Continue if the parameter sym
      	is not present or has no name. Select the parameter by name
      	of component, rather than component order. Remove all the other
      	manipulations of 'tail' when building the pdt instance.
      	(gfc_match_formal_arglist): Emit and error if a star is picked
      	up in a PDT decl parameter list.
      
      	PR fortran/82622
      	* trans-array.c (set_loop_bounds): If a GFC_SS_COMPONENT has an
      	info->end, use it rather than falling through to
      	gcc_unreachable.
      	(structure_alloc_comps): Check that param->name is non-null
      	before comparing with the component name.
      	* trans-decl.c (gfc_get_symbol_decl): Do not use the static
      	initializer for PDT symbols.
      	(gfc_init_default_dt): Do nothing for PDT symbols.
      	* trans-io.c (transfer_array_component): Parameterized array
      	components use the descriptor ubound since the shape is not
      	available.
      
      	PR fortran/82719
      	PR fortran/82720
      	* trans-expr.c (gfc_conv_component_ref): Do not use the charlen
      	backend_decl of pdt strings. Use the hidden component instead.
      	* trans-io.c (transfer_expr): Do not do IO on "hidden" string
      	lengths. Use the hidden string length for pdt string transfers
      	by adding it to the se structure. When finished nullify the
      	se string length.
      
      	PR fortran/82866
      	* decl.c (gfc_match_formal_arglist): If a name is not found or
      	star is found, while reading a type parameter list, emit an
      	immediate error.
      	(gfc_match_derived_decl): On reading a PDT parameter list, on
      	failure to match call gfc_error_recovery.
      
      	PR fortran/82978
      	* decl.c (build_struct): Character kind defaults to 1, so use
      	kind_expr whatever is the set value.
      	(gfc_get_pdt_instance): Ditto.
      	* trans-array.c (structure_alloc_comps): Copy the expression
      	for the PDT string length before parameter substitution. Use
      	this expression for evaluation and free it after use.
      
      2017-12-01  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82605
      	* gfortran.dg/pdt_4.f03 : Incorporate the new error.
      
      	PR fortran/82606
      	* gfortran.dg/pdt_19.f03 : New test.
      	* gfortran.dg/pdt_21.f03 : New test.
      
      	PR fortran/82622
      	* gfortran.dg/pdt_20.f03 : New test.
      	* gfortran.dg/pdt_22.f03 : New test.
      
      	PR fortran/82719
      	PR fortran/82720
      	* gfortran.dg/pdt_23.f03 : New test.
      
      	PR fortran/82866
      	* gfortran.dg/pdt_24.f03 : New test.
      
      	PR fortran/82978
      	* gfortran.dg/pdt_10.f03 : Correct for error in coding the for
      	kind 4 component and change the kind check appropriately.
      	* gfortran.dg/pdt_25.f03 : New test.
      
      From-SVN: r255311
      Paul Thomas committed
    • Fix bug in an OpenACC async test case · ebdc83f0
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Add missing
      	call to acc_wait (1).
      
      From-SVN: r255308
      Cesar Philippidis committed
    • re PR tree-optimization/83232 (fma3d spec2000 regression on zen with -Ofast… · fb607032
      re PR tree-optimization/83232 (fma3d spec2000 regression on zen with -Ofast (generic tuning) after r255268 by missed SLP oppurtunity)
      
      2017-12-01  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83232
      	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
      	detection of same access. Instead of breaking the group here
      	do not consider the duplicate.  Add comment explaining real fix.
      
      	* gfortran.dg/vect/pr83232.f90: New testcase.
      
      From-SVN: r255307
      Richard Biener committed
    • Fix "central flowgraph" typo in machine desc docs · d5f9df6a
      	* doc/md.texi (Insn Splitting): Fix "central flowgraph" typo.
      
      From-SVN: r255305
      Jonathan Wakely committed
    • RTEMS/Ada: Fix some POSIX types · b7d4abef
      gcc/ada
      	* libgnarl/s-osinte__rtems.ads (pthread_cond_t): Use correct size and
      	alignment.
      	(pthread_mutex_t): Likewise.
      	(pthread_rwlock_t): Likewise.
      
      From-SVN: r255302
      Sebastian Huber committed
    • Fix wrong code by arm_final_prescan with fp16 move instructions · 1500cb68
      ChangeLog entry are as follow:
      
      *** gcc/ChangeLog ***
      
      2017-12-01  Sudakshina Das  <sudi.das@arm.com>
      
      	* config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
      
      *** gcc/testsuite/ChangeLog ***
      
      2017-12-01  Sudakshina Das  <sudi.das@arm.com>
      
      	* gcc.target/arm/armv8_2-fp16-move-2.c: New test.
      
      From-SVN: r255301
      Sudakshina Das committed
    • function.h (struct function): Remove cilk_frame_decl, is_cilk_function and calls_cilk_spawn fields. · e76c7157
      	* function.h (struct function): Remove cilk_frame_decl,
      	is_cilk_function and calls_cilk_spawn fields.
      	* tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk
      	field.
      	* omp-simd-clone.c (simd_clone_clauses_extract): Don't clear
      	cilk_elemental field.
      	* cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field.
      	* target.def: Adjust comment.
      	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
      	Don't test cilk_elemental.
      c-family/
      	* c-attribs.c (c_common_attribute_table): Remove "cilk simd function"
      	attribute.
      	(handle_simd_attribute): Don't check for "cilk simd function"
      	attribute.  Reindent, formatting changes.
      cp/
      	* parser.c (cp_parser_new): Don't clear cilk_simd_fn_info.
      	(parsing_nsdmi): Adjust comment.
      	(cp_parser_omp_for_loop_init): Likewise.
      	* parser.h (struct cp_omp_declare_simd_data): Adjust comment.
      	(struct cp_parser): Remove cilk_simd_fn_info field.
      	* cp-tree.h (cilk_valid_spawn): Remove.
      
      From-SVN: r255300
      Jakub Jelinek committed
    • re PR tree-optimization/83233 (gimple-ssa-store-merging.c:183:3: warning:… · bebadeca
      re PR tree-optimization/83233 (gimple-ssa-store-merging.c:183:3: warning: unnamed type with no linkage used to declare variable with linkage)
      
      	PR tree-optimization/83233
      	* gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use
      	bswap_stat name for the struct.
      
      From-SVN: r255299
      Jakub Jelinek committed
    • re PR c/79153 (-Wimplicit-fallthrough missed warning) · 65791f42
      	PR c/79153
      	* tree.h (SWITCH_BREAK_LABEL_P): Define.
      	* gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
      	starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
      	SWITCH_BREAK_LABEL_P set on the label.
      	(gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
      	added for default case if it was missing and not all cases covered.
      	Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
      	switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
      	set on the label.
      	* tree-chrec.c (evolution_function_is_univariate_p): Add return true;
      	to avoid -Wimplicit-fallthrough warning.
      	* config/i386/i386.c (ix86_expand_special_args_builtin): Add
      	FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
      c/
      	* c-parser.c: Include tree-iterator.h.
      	(c_parser_switch_statement): Emit LABEL_EXPR for the break label
      	into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P
      	on it.
      cp/
      	* cp-gimplify.c (genericize_switch_stmt): Emit LABEL_EXPR for the
      	break label into SWITCH_BODY instead of after it and set
      	SWITCH_BREAK_LABEL_P on it.
      	* parser.c (cp_parser_objc_expression): Add FALLTHRU comment to avoid
      	-Wimplicit-fallthrough warning.
      fortran/
      	* match.c (gfc_match): Add FALLTHRU comment to avoid
      	-Wimplicit-fallthrough warning.
      testsuite/
      	* c-c++-common/Wimplicit-fallthrough-7.c: Adjust expected warning
      	line.
      	* c-c++-common/Wimplicit-fallthrough-36.c: New test.
      
      From-SVN: r255298
      Jakub Jelinek committed
    • re PR tree-optimization/83221 (qsort comparator not anti-commutative: -2147483648, -2147483648) · 5ac4b056
      	PR tree-optimization/83221
      	* tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank
      	down by 16.
      	(init_reassoc): Formatting fix.
      
      From-SVN: r255297
      Jakub Jelinek committed
    • re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) · 9ede7b1b
      	PR sanitizer/81275
      	* tree-cfg.c (group_case_labels_stmt): Don't optimize away
      	C++ FE implicitly added __builtin_unreachable () until -Wreturn-type
      	is diagnosed.
      
      	* c-c++-common/tsan/pr81275.c: Remove dg-skip-if.
      
      From-SVN: r255296
      Jakub Jelinek committed
    • re PR sanitizer/83219 (c-c++-common/ubsan/unreachable-2.c fails starting with r255201) · 770cf505
      	PR sanitizer/83219
      	* tree-cfg.c: Include asan.h.
      	(gimple_seq_unreachable_p): Return false for -fsanitize=unreachable.
      
      From-SVN: r255295
      Jakub Jelinek committed
    • re PR fortran/83224 (creating character array from elements shorter than… · 852f7e6f
      re PR fortran/83224 (creating character array from elements shorter than declared does not pad with whitespace properly and aborts)
      
      2017-12-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/83224
      	* frontend-passes.c (realloc_string_callback): Handle
      	case for which the RHS is an array expression.
      
      2017-12-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/83224
      	* gfortran.dg/dependency_50.f90: New test.
      
      From-SVN: r255294
      Thomas Koenig committed
    • Fix movdi_internal to return MODE_TI with AVX512 · 663c725a
      gcc/
      	* config/i386/i386.md: Fix AVX512 register width in AVX512 instruction.
      
      From-SVN: r255293
      Sergey Shalnov committed
    • Replace __popcntq with two _popcnt32. · bddb9bb1
      gcc/testsuite/
      	* gcc.target/i386/avx512f-vpcompressb-2.c: Fix popcnt for 64b case.
      
      From-SVN: r255292
      Kirill Yukhin committed
    • Fix wrong instruction vpcmpeqd generation · 1d1e69e9
      gcc/
      	* config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
      	vpcmpeqd instruction.
      
      From-SVN: r255291
      Sergey Shalnov committed