1. 05 Dec, 2017 11 commits
    • [multiple changes] · 6cbd45e4
      2017-12-05  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use the SLOC of the
      	iteration scheme throughout, except for the new loop statement(s).
      
      2017-12-05  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (Gen_Assign): Do not analyze the expressionn of the
      	assignment if it is part of an Iterated_Component_Association: the
      	analysis needs to take place once the loop structure is analyzed and
      	the loop parameter made visible, because references to it typically
      	appear in the corresponding expression.  This is necessary if the
      	expression is an aggregate, because previous pre-analysis of the
      	expression does not handle nested aggregates properly.
      
      2017-12-05  Bob Duff  <duff@adacore.com>
      
      	* sem_res.adb (Resolve_Allocator): Avoid coextension processing for an
      	allocator that is the expansion of a build-in-place function call.
      
      2017-12-05  Olivier Hainque  <hainque@adacore.com>
      
      libgnat/
      	* s-trasym__dwarf.adb (spec of Module_Name.Get): Instead of
      	possibly adjusting the lookup address by a load address, expect
      	a extra argument through which the load address can be conveyed
      	separately.
      	(Multi_Module_Symbolic_Traceback): Adjust accordingly. Pass the
      	retrieved load address to Init_Module.
      	* s-tsmona__linux.adb (Get): Honor the new interface.
      	* s-tsmona__mingw.adb (Get): Likewise.
      	* s-dwalin.ads: Adjust comments to be explicit about which
      	addresses are from module info and which are run-time addresses,
      	offsetted by the module load address.
      	* s-dwalin.adb (Set_Load_Address): Simply set C.Load_Slide.
      	Do not alter the module Low and High (relative) addresses.
      	(Is_Inside): Improve documentation regarding the kinds of addresses
      	at hand and correct the test.
      	(Symbolic_Traceback): Use separate variables with explicit names
      	for the address in traceback (run-time value) and the address to
      	lookup within the shared object (module-relative). Adjust the
      	computation of address passed to Symbolic_Address for symbolization.
      
      From-SVN: r255411
      Pierre-Marie de Rodat committed
    • [multiple changes] · f4ac86dd
      2017-12-05  Arnaud Charlet  <charlet@adacore.com>
      
      	* opt.ads (Expand_Nonbinary_Modular_Ops): New flag.
      	* exp_ch4.adb (Expand_Nonbinary_Modular_Op): Use
      	Expand_Nonbinary_Modular_Ops instead of Modify_Tree_For_C, so that
      	other back-ends can also benefit from the front-end expansion. Remove
      	test for Modify_Tree_For_C in all callers to better share code.
      	* gnat1drv.adb (Adjust_Global_Switches): Set
      	Expand_Nonbinary_Modular_Ops when generating C code.
      
      2017-12-05  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb (Expand_Formal_Container_Loop): Ensure that the loop
      	parameter becomes invisible after analyzing the loop, which has been
      	rewritten as a while-loop.
      
      2017-12-05  Doug Rupp  <rupp@adacore.com>
      
      	* vxaddr2line.adb: Revise and enhance for new ports, remove dead ports,
      	and update for 64bit ports.
      
      From-SVN: r255410
      Pierre-Marie de Rodat committed
    • [multiple changes] · 16d92641
      2017-12-05  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Build_In_Place_Formal): Search for the formal by suffix
      	instead of the full name.
      	* sem_ch6.adb (Create_Extra_Formals): Make sure there are extra formals
      	in the case of an instance of a generic.
      
      2017-12-05  Arnaud Charlet  <charlet@adacore.com>
      
      	(Adjust_Global_Switches): Create an alias GNAT_Annotate to map to
      	pragma Annotate.
      
      From-SVN: r255409
      Pierre-Marie de Rodat committed
    • RTEMS/Ada: Define EH_MECHANISM · ab92e6e6
      Without this definition I got the following error:
      
      <...>/xgcc <...>  -c -g -O2   -W -Wall -gnatpg -nostdinc  -g -fno-inline \
            -fno-toplevel-reorder -O1  a-except.adb -o a-except.o
      a-exexpr.adb:38:06: "System.Exceptions.Machine" is not a predefined library unit
      a-exexpr.adb:38:06: "Ada.Exceptions (body)" depends on "Ada.Exceptions.Exception_Propagation (body)"
      a-exexpr.adb:38:06: "Ada.Exceptions.Exception_Propagation (body)" depends on "System.Exceptions.Machine (spec)"
      ../gcc-interface/Makefile:2661: recipe for target 'a-except.o' failed
      
      gcc/ada
      
      	* gcc-interface/Makefile.in (RTEMS): Define EH_MECHANISM.
      
      From-SVN: r255408
      Sebastian Huber committed
    • Avoid -Werror=format-overflow error in dbxout.c (dbxout_block) on 64-bit Solaris/SPARC · bf2f5c89
      	* dbxout.c (dbxout_block): Grow buf to 30 bytes.
      
      From-SVN: r255406
      Rainer Orth committed
    • invoke.texi: Document the options. · 05abad4c
      gcc/
      	* doc/invoke.texi: Document the options.
      	* flag-types.h (enum sanitize_code): Add
      	SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
      	* ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
      	of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
      	* opts.c: Define new sanitizer options.
      	* sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
      	(BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
      gcc/c/
      	* c-typeck.c (pointer_diff): Add new argument and instrument
      	pointer subtraction.
      	(build_binary_op): Similar for pointer comparison.
      gcc/cp/
      	* typeck.c (pointer_diff): Add new argument and instrument
      	pointer subtraction.
      	(cp_build_binary_op): Create compound expression if doing an
      	instrumentation.
      gcc/testsuite/
      	* c-c++-common/asan/pointer-compare-1.c: New test.
      	* c-c++-common/asan/pointer-compare-2.c: New test.
      	* c-c++-common/asan/pointer-subtract-1.c: New test.
      	* c-c++-common/asan/pointer-subtract-2.c: New test.
      	* c-c++-common/asan/pointer-subtract-3.c: New test.
      	* c-c++-common/asan/pointer-subtract-4.c: New test.
      libsanitizer/
      	* asan/asan_descriptions.cc: Cherry-pick upstream r319668.
      	* asan/asan_descriptions.h: Likewise.
      	* asan/asan_report.cc: Likewise.
      	* asan/asan_thread.cc: Likewise.
      	* asan/asan_thread.h: Likewise.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r255404
      Martin Liska committed
    • cp-gimplify.c (cp_maybe_instrument_return): Don't add __builtin_unreachable if… · 81e4859a
      cp-gimplify.c (cp_maybe_instrument_return): Don't add __builtin_unreachable if -O0 or if -fsanitize=unreachable.
      
      	* cp-gimplify.c (cp_maybe_instrument_return): Don't add
      	__builtin_unreachable if -O0 or if -fsanitize=unreachable.
      
      	* g++.dg/missing-return.C: Add -O to dg-options.
      
      From-SVN: r255403
      Jakub Jelinek committed
    • Enable VNNI support [1/5] · 98966963
      gcc/
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET,
      	OPTION_MASK_ISA_AVX512VNNI_UNSET): New.
      	(ix86_handle_option): Handle -mavx512vnni.
      	* config/i386/cpuid.h (bit_AVX512VNNI): New bit.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
      	* config/i386/i386-c (__AVX512VNNI__): New.
      	* config/i386/i386.c (ix86_target_string): Handle new option.
      	(ix86_valid_target_attribute_inner_p): Handle new option.
      	* config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New.
      	* config/i386/i386.opt (mavx512vnni): New option.
      
      From-SVN: r255401
      Julia Koval committed
    • compiler: no nil check needed for closure var dereferences · ae4bb13f
          
          Add the "no nil check needed" annotation to the dereference operations
          created in Parse::enclosing_var_reference (this is safe since the
          closure object is under control of the compiler, and pointer fields in
          it will always be non-nil).
          
          Reviewed-on: https://go-review.googlesource.com/81795
      
      From-SVN: r255400
      Ian Lance Taylor committed
    • Makefile.am (ARCH_AARCH64_LINUX): Add IFUNC_OPTIONS and libatomic_la_LIBADD. · 141abc6f
      2017-12-04  Steve Ellcey  <sellcey@cavium.com>
      
      	* Makefile.am (ARCH_AARCH64_LINUX): Add IFUNC_OPTIONS and
      	libatomic_la_LIBADD.
      	* config/linux/aarch64/host-config.h: New file.
      	* configure.ac (IFUNC_RESOLVER_ARGS): Define.
      	(ARCH_AARCH64_LINUX): New conditional for IFUNC builds.
      	* configure.tgt (aarch64): Set ARCH and try_ifunc.
      	(aarch64*-*-linux*) Update config_path.
      	(aarch64*-*-linux*) Set IFUNC_RESOLVER_ARGS.
      	* libatomic_i.h (GEN_SELECTOR): Add IFUNC_RESOLVER_ARGS argument.
      	* Makefile.in: Regenerate.
      	* auto-config.h.in: Regenerate.
      	* configure: Regenerate.
      
      From-SVN: r255399
      Steve Ellcey committed
    • Daily bump. · ad850350
      From-SVN: r255398
      GCC Administrator committed
  2. 04 Dec, 2017 17 commits
    • re PR target/81616 (Update -mtune=generic for the current Intel and AMD processors) · e7bf9583
      	PR target/81616
      	* athlon.md: Disable for generic.
      	* haswell.md: Enable for generic.
      	* i386.c (ix86_sched_init_global): Add core hooks for generic.
      	* x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
      	to 4.
      	(ix86_adjust_cost): Move generic to haswell path.
      
      From-SVN: r255395
      Jan Hubicka committed
    • sparc.c (sparc_do_work_around_errata): Use mem_ref instead of MEM_P in a couple more places. · 8cc9a087
      	* config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
      	instead of MEM_P in a couple more places.  Fix formatting issues.
      
      From-SVN: r255393
      Eric Botcazou committed
    • Fix warnings in <bits/regex_compiler.tcc> · 472a7639
      	* include/bits/regex_compiler.tcc: Use C-style comment to work around
      	PR preprocessor/61638.
      	(__INSERT_REGEX_MATCHER): Replace GNU extension with __VA_ARGS__.
      
      From-SVN: r255392
      Jonathan Wakely committed
    • Fix -Wunused warnings in libstdc++ headers · 9ed83a33
      	* config/io/basic_file_stdio.h (__basic_file): Remove name of unused
      	parameter.
      	* include/bits/boost_concept_check.h: Add pragmas to disable
      	-Wunused-local-typedef warnings.
      	* include/bits/codecvt.h (codecvt_byname<char16_t, char, mbstate_t>)
      	(codecvt_byname<char32_t, char, mbstate_t>): Remove name of unused
      	parameter.
      	* include/bits/locale_facets_nonio.tcc (time_get::do_get_weekday)
      	(time_get::do_get_monthname, time_get::do_get_year): Remove unused
      	variables.
      	* include/std/bitset (_Base_bitset<0>::_M_getword): Remove name of
      	unused parameter.
      	* include/std/streambuf (_IsUnused): Define.
      	(basic_streambuf::imbue, basic_streambuf::pbackfail)
      	(basic_streambuf::overflow): Add macro to unused parameters.
      	* testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error.
      
      From-SVN: r255391
      Jonathan Wakely committed
    • PR c++/83273 - constexpr if allows non-constant condition · 899ac3b8
      	* semantics.c (finish_if_stmt_cond): Use require_constant_expression
      	rather than is_constant_expression.
      	* constexpr.c (potential_constant_expression_1) [LAMBDA_EXPR]: Allow
      	in C++17.
      
      From-SVN: r255390
      Jason Merrill committed
    • Fix typos in riscv register save/restore. · f3abed16
      	gcc/
      	* config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
      	instead of GP_REG_LAST-1.
      	(riscv_adjust_libcall_cfi_prologue): Likewise.
      	(riscv_adjust_libcall_cri_epilogue): Likewise.
      	* config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
      	comment.
      
      From-SVN: r255389
      Jim Wilson committed
    • Fix missing newlines from local-pure-const pass dump · 75622c9e
      I noticed the debugging output from local-pure-const pass is missing a
      newline in a couple places, leading to this:
      
       local analysis of main
         scanning: i ={v} 0;
          Volatile stmt is not const/pure
          Volatile operand is not const/pure  scanning: j ={v} 20;
          Volatile stmt is not const/pure
          Volatile operand is not const/pure  scanning: vol.0_10 ={v} i;
          Volatile stmt is not const/pure
      
      It should've been:
      
       local analysis of main
         scanning: i ={v} 0;
          Volatile stmt is not const/pure
          Volatile operand is not const/pure
         scanning: j ={v} 20;
          Volatile stmt is not const/pure
          Volatile operand is not const/pure
         scanning: vol.0_10 ={v} i;
          Volatile stmt is not const/pure
      
      gcc/ChangeLog:
      
      2017-12-04  Luis Machado  <luis.machado@linaro.org>
      
      	* ipa-pure-const.c (check_decl): Add missing newline.
      	(state_from_flags): Likewise.
      
      From-SVN: r255388
      Luis Machado committed
    • re PR tree-optimization/78496 (Missed opportunities for jump threading) · d49e06ce
      	PR tree-optimizatin/78496
      	* gimple-ssa-evrp-analyze.h
      	(evrp_range_analyzer::get_vr_values): Simplify.
      	* gimple-ssa-evrp-analyze.c: Corresponding changes.
      	* tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
      	and gimple-ssa-evrp-analyze.h.
      	(dom_opt_dom_walker class): Add evrp_range_analyzer member.
      	(simplify_stmt_for_jump_threading): Copy a blob of code from
      	tree-vrp.c to use ranges to simplify statements.
      	(dom_opt_dom_walker::before_dom_children): Call
      	evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
      	(dom_opt_dom_walker::after_dom_children): Similarly for
      	evrp_range_analyzer::leave.
      	(dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
      	conditionals.
      
      	PR tree-optimization/78496
      	* gcc.dg/builtin-unreachable-6.c: Disable DOM.
      	* gcc.dg/builtin-unreachable-6a.c: New test.
      	* gcc.dg/tree-ssa/20030922-1.c: No longer XFAIL.
      	* gcc.dg/ssa-dom-branch-1.c: Tweak expected output.
      
      From-SVN: r255387
      Jeff Law committed
    • * gimple-ssa-evrp-analyze.c · d48f6f3f
      	(evrp_range_analyzer::extract_range_from_stmt):  Always use
      	vr_values::update_value_range so preexisting range info is
      	medged with new range info, even if the new range is VR_VARYING.
      
      From-SVN: r255386
      Jeff Law committed
    • combine: Remove use_crosses_set_p · 178667d2
      This removes use_crosses_set_p, and uses modified_between_p instead
      everywhere it was used.  This improves optimisation.
      
      
      	* combine.c: Adjust comment.
      	(use_crosses_set_p): Delete.
      	(can_combine_p): Use modified_between_p instead of use_crosses_set_p.
      	(try_combine): Ditto.
      
      From-SVN: r255384
      Segher Boessenkool committed
    • re PR tree-optimization/83255 ([graphite] Wrong code w/ -O1 -floop-nest-optimize) · 86502ecf
      2017-12-04  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83255
      	* graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
      	Re-add zero-iteration check.
      
      	* gcc.dg/graphite/pr83255.c: New testcase.
      
      From-SVN: r255382
      Richard Biener committed
    • RTEMS/Ada: Account for 64-bit time_t · ca4564f9
      The Newlib time_t has now 64 bits for RTEMS.
      
      gcc/ada
      
      	* gcc-interface/Makefile.in (RTEMS): Use s-osprim__rtems.adb.
      	* libgnat/s-osprim__rtems.adb: New file.
      	* libgnarl/s-osinte__rtems.adb (pthread_cond_t): Fix alignment.
      	(pthread_mutexattr_t): Likewise.
      	(pthread_rwlockattr_t): Likewise.
      	(pthread_rwlock_t): Likewise.
      	(time_t): Use 64-bit integer.
      
      From-SVN: r255380
      Sebastian Huber committed
    • lra: Clobbers in a parallel are earlyclobbers (PR83245) · 80850da1
      The documentation (rtl.texi) says:
      
        When a @code{clobber} expression for a register appears inside a
        @code{parallel} with other side effects, the register allocator
        guarantees that the register is unoccupied both before and after that
        insn if it is a hard register clobber.
      
      and at least the rs6000 backend relies on that (see PR83245).  This
      patch restores that behaviour.
      
      Registers that are also used as operands in the instruction are not
      treated as earlyclobber, so such insns also still work (PR80818, an
      s390 testcase).
      
      
      	PR rtl-optimization/83245
      	* lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
      	hard registers as earlyclobber, also if not in an asm.
      
      From-SVN: r255377
      Segher Boessenkool committed
    • re PR bootstrap/83265 (Bootstrap failure on powerpc64) · 155f67eb
      
      	PR bootstrap/83265
      	Revert
      	2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
      
      	PR target/43871
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Set
      	rs6000_cpu based on cpu_index, not tune_index.
      
      From-SVN: r255376
      Segher Boessenkool committed
    • re PR tree-optimization/83238 ([graphite] ICE in graphite_can_represent_scev, at… · 5d66d3f1
      re PR tree-optimization/83238 ([graphite] ICE in graphite_can_represent_scev, at graphite-scop-detection.c:971)
      
      2017-12-04  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83238
      	* graphite-scop-detection.c (scop_detection::merge_sese): Make
      	code match comment, rejecting invalid SESE regions.
      
      	* gcc.dg/graphite/pr83238.c: New testcase.
      
      From-SVN: r255375
      Richard Biener committed
    • Require effective target alloca for pr82875.c · b6ecbf31
      2017-12-04  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/pr82875.c: Require effective target alloca.
      
      From-SVN: r255374
      Tom de Vries committed
    • Daily bump. · b2ab3c17
      From-SVN: r255372
      GCC Administrator committed
  3. 03 Dec, 2017 7 commits
    • pa.c (pa_legitimate_address_p): For scaled indexing... · b1947510
      	* config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
      	require base operand is a REG_POINTER prior to reload on targets
      	with non-equivalent space registers.
      
      From-SVN: r255369
      John David Anglin committed
    • re PR fortran/36313 ([F03] {MIN,MAX}{LOC,VAL} should accept character arguments) · 0ac74254
      2017-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/36313
      	* check.c (gfc_check_minval_maxval): Use
      	int_orLreal_or_char_check_f2003 for array argument.
      	* iresolve.c (gfc_resolve_maxval): Insert number in
      	function name for character arguments.
      	(gfc_resolve_minval): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc):
      	Fix comment.
      	(gfc_conv_intrinsic_minmaxval): Resort arguments and call library
      	function if dealing with a character function.
      
      2017-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/36313
      	* Makefile.am: Add new files for character-valued
      	maxval and minval.
      	* Makefile.in: Regenerated.
      	* gfortran.map: Add new functions.
      	* m4/iforeach-s2.m4: New file.
      	* m4/ifunction-s2.m4: New file.
      	* m4/iparm.m4: Add intitval for minval and maxval.
      	* m4/maxval0s.m4: New file.
      	* m4/maxval1s.m4: New file.
      	* m4/minval0s.m4: New file.
      	* m4/minval1s.m4: New file.
              * generated/maxval0_s1.c: New file.
              * generated/maxval0_s4.c: New file.
              * generated/maxval1_s1.c: New file.
              * generated/maxval1_s4.c: New file.
              * generated/minval0_s1.c: New file.
              * generated/minval0_s4.c: New file.
              * generated/minval1_s1.c: New file.
              * generated/minval1_s4.c: New file.
      
      2017-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/36313
      	* gfortran.dg/maxval_char_1.f90: New test.
      	* gfortran.dg/maxval_char_2.f90: New test.
      	* gfortran.dg/maxval_char_3.f90: New test.
      	* gfortran.dg/maxval_char_4.f90: New test.
      	* gfortran.dg/minval_char_1.f90: New test.
      	* gfortran.dg/minval_char_2.f90: New test.
      	* gfortran.dg/minval_char_3.f90: New test.
      	* gfortran.dg/minval_char_4.f90: New test.
      
      From-SVN: r255367
      Thomas Koenig committed
    • Fix typo in ChangeLog. · af5ad1e2
      From-SVN: r255366
      Jerry DeLisle committed
    • re PR fortran/83191 (Writing a namelist with repeated complex numbers) · c4508d0a
      2017-12-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
                  Dominique d'Humieres  <dominiq@lps.ens.fr>
      
              PR libgfortran/83191
              * io/transfer.c (list_formatted_read_scalar): Do not set
              namelist_mode bit here. (namelist_read): Likewise.
              (data_transfer_init): Clear the mode bit here.
              (finalize_transfer): Do set the mode bit just before any calls
              to namelist_read or namelist_write. It can now be referred to
              in complex_write.
              ^ io/write.c (write_complex): Suppress the leading blanks when
              namelist_mode bit is not set to 1.
      
              * gfortran.dg/namelist_95.f90: New test.
      
      Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
      
      From-SVN: r255365
      Jerry DeLisle committed
    • Fix spelling error in log. · 7c731281
      From-SVN: r255363
      Jerry DeLisle committed
    • re PR fortran/83225 (runtime error in transfer.c) · 7b39e3c2
      2017-12-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/83225
      	* io/io.h (is_internal_unit): Use the unit_is_internal bit.
      	* io/transfer.c (data_transfer_init): Set the bit to true for
      	internal umits. Use that bit for checks for internal unit
      	initializations.
      	* io/unit.c (insert_unit): As a precaution, set the
      	internal_unit_kind to zero when a unit structure is first created.
      
      From-SVN: r255362
      Jerry DeLisle committed
    • Daily bump. · acffd4fd
      From-SVN: r255361
      GCC Administrator committed
  4. 02 Dec, 2017 5 commits