1. 22 Jul, 2019 12 commits
    • [Ada] Ensure Ctrl-C is not emited on terminated processes · 1a79e03b
      Due to the reuse policy of PID on Windows. Sending a Ctrl-C to a dead
      process might result in a Ctrl-C sent to the wrong process. The check is
      also implemented on Unix platforms and avoid unecessary waits.
      
      2019-07-22  Nicolas Roche  <roche@adacore.com>
      
      gcc/ada/
      
      	* terminals.c (__gnat_tty_waitpid): Support both blocking and
      	not blocking mode.
      	* libgnat/g-exptty.ads (Is_Process_Running): New function.
      	* libgnat/g-exptty.adb (Close): Don't try to interrupt/terminate
      	a process if it is already dead.
      
      From-SVN: r273672
      Nicolas Roche committed
    • [Ada] Incorrect values in conversion from fixed-point subtype with 'Small · 4123b473
      This patch fixes incorrect computations involving a fixed-point subtype
      whose parent type has an aspect specification for 'Small.
      
      Executing the following:
      
         gnatmake -q conv
         ./conv
      
      must yield:
      
         9000.000000
          9.00000000000000E+03
          9000.000000
          9.00000000000000E+03
          9.00000000000000E+03
          9.00000000000000E+03
          9.00000000000000E+03
          9.00000000000000E+03
      
      ----
      with Text_IO; use Text_IO;
      procedure Conv is
        V_P : constant := 10.0 ** (-6);
        M_V : constant := 9000.0;
        N_V : constant := -9000.0;
        type V_T is delta V_P range N_V .. M_V  with Small => V_P;
        subtype S_T is V_T range 0.0 .. M_V;
      
        function Convert (Input : in S_T) return Long_Float is
        begin
          Put_Line (Input'Img);
          Put_Line (Long_Float'Image (Long_Float (Input)));
          return Long_Float (Input);
        end Convert;
      
      begin
      
        declare
          Var_S : constant S_T := S_T'Last;
          Output : constant Long_Float := Convert (Var_S);
        begin
          Put_Line (Long_Float'Image (Convert (Var_S)));
          Put_Line (Long_Float'Image (Long_Float (Var_S)));
          Put_Line (Output'Img);
        end;
      
        Put_Line (Long_Float'Image (Long_Float (S_T'Last)));
      
      end Conv;
      
      2019-07-22  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* freeze.adb (Freeze_Fixed_Point_Type):  When freezing a
      	fixed-point subtype, check whether the parent type declarastion
      	includes an aspect specification for the 'Small type attribute,
      	and inherit the specified value.
      
      From-SVN: r273671
      Ed Schonberg committed
    • [Ada] Crash in C++ constructor without external and link name · 2fdc20b6
      The compiler blows up processing the declaration of a tagged type
      variable that has a C++ constructor without external or link name. After
      this patch the frontend reports an error.
      
      2019-07-22  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* freeze.adb (Freeze_Subprogram): Check that C++ constructors
      	must have external or link name.
      
      gcc/testsuite/
      
      	* gnat.dg/cpp_constructor2.adb: New testcase.
      
      From-SVN: r273670
      Javier Miranda committed
    • [Ada] Spurious warning about a useless assignment · 0af66bdc
      This patch removes a spurious warning about a useless assignment, when a
      composite object is the target of an assignment and is an actual for an
      out parameter in a subsewuent call, and there is an intervening use of
      the object as the prefix of a selected component in an intervening
      operation.
      
      2019-07-22  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_res.adb (Resolve_Selected_Component): If the prefix has a
      	deferred reference, generate the correct reference now, to
      	indicate that the previous assignment is used.  This prevents
      	spurious warnings on useless assignments when compiling with all
      	warnings enabled. when there is a subsequent call in the same
      	stqtement list, in which the prefix of the selected component is
      	the actual for an out parameter.
      
      gcc/testsuite/
      
      	* gnat.dg/warn22.adb: New testcase.
      
      From-SVN: r273669
      Ed Schonberg committed
    • [Ada] Fix internal error on array slice in loop and Loop_Invariant · c961d820
      This fixes an internal error caused by the presence of an Itype in a
      wrong scope.  This Itype is created for an array slice present in the
      condition of a while loop whose body also contains a pragma
      Loop_Invariant, initially in the correct scope but then relocated into a
      function created for the pragma.
      
      2019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* exp_attr.adb (Expand_Loop_Entry_Attribute): Copy the condition
      	of a while loop instead of simply relocating it.
      
      gcc/testsuite/
      
      	* gnat.dg/loop_invariant1.adb, gnat.dg/loop_invariant1.ads: New
      	testcase.
      
      From-SVN: r273668
      Eric Botcazou committed
    • re PR tree-optimization/91221 (ICE in get_int_cst_ext_nunits, at tree.c:1299 since r273548) · 8801ca5c
      2019-07-22  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91221
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
      	restrict partial-def handling of empty constructors and
      	memset to refs with known offset.
      
      	* g++.dg/pr91221.C: New testcase.
      
      From-SVN: r273667
      Richard Biener committed
    • x86/AVX512: improve generated code for bit-wise negation of vectors of integers · ff8f129b
      NOT on vectors of integers does not require loading a constant vector of
      all ones into a register - VPTERNLOG can be used here (and could/should
      be further used to carry out other binary and ternary logical operations
      which don't have a special purpose instruction).
      
      gcc/
      2019-07-22  Jan Beulich  <jbeulich@suse.com>
      
      	* config/i386/sse.md (ternlogsuffix): New.
      	(one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
      	AVX512F is in use.
      	(<mask_codefor>one_cmpl<mode>2<mask_name>): New.
      
      From-SVN: r273663
      Jan Beulich committed
    • Do not emit __gnu_lto_v1 symbol. · a861990d
      2019-07-22  Martin Liska  <mliska@suse.cz>
      
      	* config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
      	comment.
      	* toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
      2019-07-22  Martin Liska  <mliska@suse.cz>
      
      	* config/pa/stublib.c: Remove stub symbol __gnu_lto_v1.
      	* config/pa/t-stublib: Likewise.
      2019-07-22  Martin Liska  <mliska@suse.cz>
      
      	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
      	Do not search for gnu_lto_v1, but search for first '\0'.
      
      From-SVN: r273662
      Martin Liska committed
    • Simplify LTO section format. · d1caf05a
      2019-07-22  Martin Liska  <mliska@suse.cz>
      
      	* lto-section-in.c (lto_get_section_data):
      	Use new function get_compression.
      	* lto-streamer-out.c (produce_lto_section): Use
      	set_compression to encode compression algorithm.
      	* lto-streamer.h (struct lto_section): Do not
      	use bitfields in the format.
      
      From-SVN: r273661
      Martin Liska committed
    • Make a warning for -Werror=wrong-language (PR driver/91172). · 2df89b66
      2019-07-22  Martin Liska  <mliska@suse.cz>
      
      	PR driver/91172
      	* opts-common.c (decode_cmdline_option): Decode
      	argument of -Werror and check it for a wrong language.
      	* opts-global.c (complain_wrong_lang): Remove such case.
      2019-07-22  Martin Liska  <mliska@suse.cz>
      
      	PR driver/91172
      	* gcc.dg/pr91172.c: New test.
      
      From-SVN: r273660
      Martin Liska committed
    • [ARC] Fix emitting TLS symbols. · 4be6c9b9
      When storing a TLS symbol to memory, always use an intermediate register to load it.
      
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (prepare_move_operands): Always use an
      	intermediate register when storing a TLS symbols.
      
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc/testsuite/gcc.target/arc/tls-2.c: New test.
      	* gcc/testsuite/gcc.target/arc/tls-3.c: Likewise.
      
      From-SVN: r273657
      Claudiu Zissulescu committed
    • Daily bump. · 9e23d3bb
      From-SVN: r273656
      GCC Administrator committed
  2. 21 Jul, 2019 9 commits
    • re PR c++/67853 (decltype of parenthesized xvalue does not correctly yield rvalue-reference) · 33c43069
      	PR c++/67853
      	* g++.dg/cpp0x/decltype72.C: New test.
      
      From-SVN: r273652
      Marek Polacek committed
    • or1k: only force reg for immediates · 575ce893
      The force_reg in or1k_expand_compare is hard coded for SImode, which is fine as
      this used to only be used on SI expands.  However, with FP support this will
      cause issues.  In general we should only force the right hand operand to a
      register if its an immediate.  This patch adds an condition to check for that.
      
      gcc/ChangeLog:
      
      	* config/or1k/or1k.c (or1k_expand_compare): Check for int before
      	force_reg.
      
      From-SVN: r273651
      Stafford Horne committed
    • or1k: Initial support for FPU · 44080af9
      This adds support for OpenRISC hardware floating point instructions.
      This is enabled with the -mhard-float option.
      
      Double-prevision floating point operations work using register pairing as
      specified in: https://openrisc.io/proposals/orfpx64a32.  This has just been
      added in the OpenRISC architecture specification 1.3.
      This is enabled with the -mdouble-float option.
      
      Not all architectures support unordered comparisons so an option,
      -munordered-float is added.
      
      Currently OpenRISC does not support sf/df or df/sf conversions, but this has
      also just been added in architecture specification 1.3.
      
      gcc/ChangeLog:
      
      	* config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
      	and munordered-float validations.
      	* config/or1k/constraints.md (d): New register constraint.
      	* config/or1k/predicates.md (fp_comparison_operator): New.
      	* config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
      	operands.
      	(or1k_expand_compare): Normalize unordered comparisons.
      	* config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
      	(REG_CLASS_NAMES): Add "DOUBLE_REGS".
      	(REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
      	* config/or1k/or1k.md (type): Add fpu.
      	(fpu): New instruction reservation.
      	(F, f, fr, fi, FI, FOP, fop): New.
      	(<fop><F:mode>3): New ALU instruction definition.
      	(float<fi><F:mode>2): New conversion instruction definition.
      	(fix_trunc<F:mode><fi>2): New conversion instruction definition.
      	(fpcmpcc): New code iterator.
      	(*sf_fp_insn): New instruction definition.
      	(cstore<F:mode>4): New expand definition.
      	(cbranch<F:mode>4): New expand definition.
      	* config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
      	munordered-float): New options.
      	* doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
      	munordered-float.
      
      From-SVN: r273650
      Stafford Horne committed
    • or1k: Add mrori option, fix option docs · 1e2e81c1
      gcc/ChangeLog:
      
      	* config.gcc (or1k*-*-*): Add mrori and mror to validation.
      	* doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
      	documenation to be more clear.
      	* config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
      	more clear.
      	* config/or1k/or1k.opt (mrori): New option.
      	(mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
      	msfimm, mshftimm): Rewrite documentation to be more clear.
      	* config/or1k/or1k.md (insn_support): Add ror and rori.
      	(enabled): Add conditions for ror and rori.
      	(rotrsi3): Replace condition for shftimm with ror and rori.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/or1k/ror-4.c: New file.
      	* gcc.target/or1k/shftimm-1.c: Update test from rotate to shift
      	as the shftimm option no longer controls rotate.
      
      From-SVN: r273649
      Stafford Horne committed
    • or1k: Fix issues with msoft-div · 9c0dba7c
      Fixes bad assembly logic with software divide as reported by Richard Selvaggi.
      Also, add a basic test to verify the soft math works when enabled.
      
      gcc/testsuite/ChangeLog:
      
      	PR target/90362
      	* gcc.target/or1k/div-mul-3.c: New test.
      
      libgcc/ChangeLog:
      
      	PR target/90362
      	* config/or1k/lib1funcs.S (__udivsi3): Change l.sfeqi
      	to l.sfeq and l.sfltsi to l.sflts equivalents as the immediate
      	instructions are not available on every processor.  Change a
      	l.bnf to l.bf to fix logic issue.
      
      From-SVN: r273648
      Stafford Horne committed
    • or1k: Fix code quality for volatile memory loads · 2e92185a
      Volatile memory does not match the memory_operand predicate.  This
      causes extra extend/mask instructions instructions when reading
      from volatile memory.  On OpenRISC loading volatile memory can be
      treated the same as regular memory loads which supports combined
      sign/zero extends.  Fixing this eliminates the need for extra
      extend/mask instructions.
      
      This also adds a test provided by Richard Selvaggi which uncovered the
      issue while we were looking into another issue.
      
      gcc/ChangeLog:
      
      	PR target/90363
      	* config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
      	(extend<mode>si2): Update predicate.
      	* gcc/config/or1k/predicates.md (volatile_mem_operand): New.
      	(reg_or_mem_operand): New.
      
      gcc/testsuite/ChangeLog:
      
      	PR target/90363
      	* gcc.target/or1k/swap-1.c: New test.
      	* gcc.target/or1k/swap-2.c: New test.
      
      From-SVN: r273647
      Stafford Horne committed
    • [PPC] Fix bootstrap for non-SVR4 targets. · 48df9391
      The recent change to move code into the new rs6000-call.c file is missing a
      default value for the TARGET_NO_PROTOTYPE value (which only affects targets
      that don’t include svr4.h).  Fixed by moving the fallback setting from
      rs6000.c (which has no uses now) to rs6000-call.c.
      
      2019-07-21  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
      	* config/rs6000/rs6000-call.c: ... to here.
      
      From-SVN: r273646
      Iain Sandoe committed
    • re PR libfortran/91030 (Poor performance of I/O -fconvert=big-endian) · c37b0163
      2019-07-21  Thomas König  <tkoenig@gcc.gnu.org>
      
      	PR libfortran/91030
      	* gfortran.texi (GFORTRAN_FORMATTED_BUFFER_SIZE): Document
      	(GFORTRAN_UNFORMATTED_BUFFER_SIZE): Likewise.
      
      2019-07-21  Thomas König  <tkoenig@gcc.gnu.org>
      
      	PR libfortran/91030
      	* io/unix.c (BUFFER_SIZE): Delete.
      	(BUFFER_FORMATTED_SIZE_DEFAULT): New variable.
      	(BUFFER_UNFORMATTED_SIZE_DEFAULT): New variable.
      	(unix_stream): Add buffer_size.
      	(buf_read): Use s->buffer_size instead of BUFFER_SIZE.
      	(buf_write): Likewise.
      	(buf_init): Add argument unformatted.  Handle block sizes
      	for unformatted vs. formatted, using defaults if provided.
      	(fd_to_stream): Add argument unformatted in call to buf_init.
      	* libgfortran.h (options_t): Add buffer_size_formatted and
      	buffer_size_unformatted.
      	* runtime/environ.c (variable_table): Add
      	GFORTRAN_UNFORMATTED_BUFFER_SIZE and
      	GFORTRAN_FORMATTED_BUFFER_SIZE.
      
      From-SVN: r273643
      Thomas Koenig committed
    • Daily bump. · 037455d4
      From-SVN: r273640
      GCC Administrator committed
  3. 20 Jul, 2019 11 commits
    • rs6000: Make offsettable_mem_operand use any_memory_operand · 92576357
      
      	* config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
      	memory.
      
      From-SVN: r273633
      Segher Boessenkool committed
    • rs6000: Make input_operand use any_memory_operand · 4f5ddf27
      
      	* config/rs6000/predicates.md (input_operand): Allow volatile memory.
      
      From-SVN: r273632
      Segher Boessenkool committed
    • rs6000: Make lwa_operand use any_memory_operand · 45986ed9
      Testcase from comex, see https://lwn.net/Articles/793932/ .
      
      
      	* config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
      
      gcc/testsuite/
      	* gcc.target/powerpc/volatile-mem.c: New testcase.
      
      From-SVN: r273631
      Segher Boessenkool committed
    • rs6000: New predicate any_memory_operand · 5744faa9
      The new predicate accepts both memory_operand and volatile_mem_operand.
      
      
      	* config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
      	(any_memory_operand): New predicate.
      	(reg_or_mem_operand): Use it.
      
      From-SVN: r273630
      Segher Boessenkool committed
    • re PR target/91204 (ICE in expand_expr_real_2, at expr.c:9215 with -O3) · 4b3df265
      	PR target/91204
      	* optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
      
      	* gcc.c-torture/compile/pr91204.c: New test.
      
      From-SVN: r273629
      Jakub Jelinek committed
    • pa.h (hppa_profile_hook): Delete declaration. · 7604f435
      	* config/pa/pa.h (hppa_profile_hook): Delete declaration.
      	* config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
      
      From-SVN: r273628
      John David Anglin committed
    • Fix ICE on class template argument deduction with inherited ctor. · 2dc10705
      In general, when we see a dependent using-declaration we don't know whether
      it names a function or not, so it doesn't get an OVERLOAD unless we see
      overloads of the same name in the current class.  In the case of an
      inherited constructor we could figure that out from the name, but it's
      simpler to handle USING_DECL properly.
      
      	* cp-tree.h (ovl_iterator::using_p): A USING_DECL by itself was also
      	introduced by a using-declaration.
      
      From-SVN: r273623
      Jason Merrill committed
    • Reduce memory consumption for push/pop_access_scope. · 1ab1f350
      I was seeing memory consumption issues on the concepts-cxx2a
      branch. push_scope was, surprisingly, at the top of -fmem-report, and
      push_access_scope was pretty high.  Fixing them was pretty simple.
      
      	* name-lookup.c (leave_scope): Do add class levels other than
      	previous_class_level to free_binding_level.
      	(invalidate_class_lookup_cache): Move from class.c, add to
      	free_binding_level.
      	* pt.c (saved_access_scope): Change from list to vec.
      
      From-SVN: r273622
      Jason Merrill committed
    • tree.def (OMP_LOOP): New tree code. · 554a530f
      	* tree.def (OMP_LOOP): New tree code.
      	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
      	(enum omp_clause_bind_kind): New enum.
      	(struct tree_omp_clause): Add subcode.bind_kind.
      	* tree.h (OMP_LOOP_CHECK): Rename to ...
      	(OMP_LOOPING_CHECK): ... this.
      	(OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
      	OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
      	OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
      	(OMP_CLAUSE_BIND_KIND): Define.
      	* tree.c (omp_clause_num_ops, omp_clause_code_name): Add
      	bind clause entries.
      	(walk_tree_1): Handle OMP_CLAUSE_BIND.
      	* tree-pretty-print.c (dump_omp_clause): Likewise.
      	(dump_generic_node): Handle OMP_LOOP.
      	* gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
      	(in_omp_construct): New variable.
      	(is_gimple_stmt): Handle OMP_LOOP.
      	(gimplify_scan_omp_clauses): For lastprivate don't set
      	check_non_private if code == OMP_LOOP.  For reduction clause
      	on OMP_LOOP combined with parallel or teams propagate as shared
      	on the combined construct.  Handle OMP_CLAUSE_BIND.
      	(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
      	(gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
      	for constructs from a loop construct to gimplify_scan_omp_clauses.
      	Don't predetermine iterator linear on OMP_SIMD from loop construct.
      	(replace_reduction_placeholders, gimplify_omp_loop): New functions.
      	(gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
      	to match the implicit ORT_TARGET construct around whole body.
      	Temporarily clear in_omp_construct when processing body.
      	(gimplify_expr): Handle OMP_LOOP.  For OMP_MASTER, OMP_TASKGROUP
      	etc. temporarily set in_omp_construct when processing body.
      	(gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
      	* omp-low.c (struct omp_context): Add loop_p.
      	(build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
      	in that the original var might be private.
      	(scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
      	(check_omp_nesting_restrictions): Adjust nesting restrictions for
      	addition of loop construct.
      	(scan_omp_1_stmt): Allow setjmp inside of loop construct.
      gcc/c-family/
      	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_LOOP.
      	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_BIND.
      	* c-pragma.c (omp_pragmas_simd): Add PRAGMA_OMP_LOOP entry.
      	* c-common.h (enum c_omp_clause_split): Add C_OMP_CLAUSE_SPLIT_LOOP.
      	* c-omp.c (c_omp_split_clauses): Add support for 4 new combined
      	constructs with the loop construct.
      gcc/c/
      	* c-parser.c (c_parser_omp_clause_name): Handle bind clause.
      	(c_parser_omp_clause_bind): New function.
      	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_BIND.
      	(OMP_LOOP_CLAUSE_MASK): Define.
      	(c_parser_omp_loop): New function.
      	(c_parser_omp_parallel, c_parser_omp_teams): Handle parsing of
      	loop combined with parallel or teams.
      	(c_parser_omp_construct): Handle PRAGMA_OMP_LOOP.
      	* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_BIND.
      gcc/cp/
      	* cp-tree.h (OMP_FOR_GIMPLIFYING_P): Use OMP_LOOPING_CHECK
      	instead of OMP_LOOP_CHECK.
      	* parser.c (cp_parser_omp_clause_name): Handle bind clause.
      	(cp_parser_omp_clause_bind): New function.
      	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_BIND.
      	(OMP_LOOP_CLAUSE_MASK): Define.
      	(cp_parser_omp_loop): New function.
      	(cp_parser_omp_parallel, cp_parser_omp_teams): Handle parsing of
      	loop combined with parallel or teams.
      	(cp_parser_omp_construct): Handle PRAGMA_OMP_LOOP.
      	(cp_parser_pragma): Likewise.
      	* pt.c (tsubst_expr): Handle OMP_LOOP.
      	* semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_BIND.
      gcc/testsuite/
      	* c-c++-common/gomp/cancel-1.c: Adjust expected diagnostic wording.
      	* c-c++-common/gomp/clauses-1.c (foo, baz, bar): Add order(concurrent)
      	clause where allowed.  Add combined constructs with loop with all
      	possible clauses.
      	(qux): New function.
      	* c-c++-common/gomp/loop-1.c: New test.
      	* c-c++-common/gomp/loop-2.c: New test.
      	* c-c++-common/gomp/loop-3.c: New test.
      	* c-c++-common/gomp/loop-4.c: New test.
      	* c-c++-common/gomp/loop-5.c: New test.
      	* c-c++-common/gomp/order-3.c: Adjust expected diagnostic wording.
      	* c-c++-common/gomp/simd-setjmp-1.c: New test.
      	* c-c++-common/gomp/teams-2.c: Adjust expected diagnostic wording.
      libgomp/
      	* testsuite/libgomp.c-c++-common/loop-1.c: New test.
      
      From-SVN: r273621
      Jakub Jelinek committed
    • omp-low.c (lower_rec_input_clauses): Don't force simd arrays for lastprivate… · b6339213
      omp-low.c (lower_rec_input_clauses): Don't force simd arrays for lastprivate non-addressable iterator of a...
      
      	* omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
      	lastprivate non-addressable iterator of a collapse(1) simd.
      
      	* gcc.dg/vect/vect-simd-16.c: New test.
      
      From-SVN: r273620
      Jakub Jelinek committed
    • Daily bump. · 05584e7c
      From-SVN: r273615
      GCC Administrator committed
  4. 19 Jul, 2019 8 commits
    • compiler: don't export bodies for functions marked "go:noinline" · aa4d56e2
          
          The current Mark_inline_candidates helper looks only at budget when
          deciding to mark a function or method as inline (with the proviso that
          IR constructs not yet supported by the inliner are given artificially
          high cost). This patch changes the helper to also look at whether a
          function has the "go:noinline" pragma; if it does have the pragma
          there is no point putting it into the export data (it will just make
          the export data bigger).
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/186923
      
      From-SVN: r273611
      Ian Lance Taylor committed
    • rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value as in rs6000.c. · c3550462
      2019-07-17  Bill Seurer  <seurer@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
      	as in rs6000.c.
      
      From-SVN: r273610
      Bill Seurer committed
    • stl_tempbuf.h (__detail::__return_temporary_buffer): Fix sized deallocation size computation. · 2be3193b
      2019-07-19  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_tempbuf.h (__detail::__return_temporary_buffer): Fix
      	sized deallocation size computation.
      
      From-SVN: r273609
      François Dumont committed
    • [Darwin] More specs TLC. · db67ea0f
      This strips out a few driver specs that are only specifying a default state.
      Also warn on an option now ignored, and add some comments to the driver specs
      section.
      
      2019-07-19  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
      	refer to default conditions.  Warn for the 'y' spec which is ignored
      	by current linkers.
      
      From-SVN: r273608
      Iain Sandoe committed
    • [PATCH, rs6000] Split up rs6000.c. · 1acf0246
      The source file rs6000.c has grown to unreasonable size and is being
      split up into several smaller source files.  This should improve
      compilation speed for building gcc.
      
      This is the second of several patches to do this and moves most of the
      function call and builtin code to a new source file.
      
      Bootstrapped and tested on powerpc64le-unknown-linux-gnu and
      powerpc64-unknown-linux-gnu with no regressions.  Is this ok for trunk?
      
      
      2019-07-17  Bill Seurer  <seurer@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (builtin_description, cpu_is_info,
      	cpu_supports_info, builtin_hash_struct, builtin_hasher,
      	builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
      	rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
      	rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
      	init_cumulative_args, rs6000_promote_function_mode,
      	rs6000_must_pass_in_stack, is_complex_IBM_long_double,
      	abi_v4_pass_in_fpr, rs6000_function_arg_padding,
      	rs6000_function_arg_boundary, rs6000_parm_offset,
      	rs6000_parm_start, rs6000_arg_size,
      	rs6000_darwin64_record_arg_advance_flush,
      	rs6000_darwin64_record_arg_advance_recurse,
      	rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
      	rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
      	rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
      	rs6000_mixed_function_arg, rs6000_psave_function_arg,
      	rs6000_finish_function_arg, rs6000_function_arg,
      	rs6000_arg_partial_bytes, rs6000_pass_by_reference,
      	rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
      	rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
      	setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
      	rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
      	bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
      	bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
      	rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
      	rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
      	rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
      	altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
      	altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
      	altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
      	altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
      	htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
      	altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
      	get_element_number, altivec_expand_vec_set_builtin,
      	altivec_expand_vec_ext_builtin, altivec_expand_builtin,
      	rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
      	rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
      	fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
      	fold_mergeeo_helper, rs6000_gimple_fold_builtin,
      	rs6000_expand_builtin, rs6000_vector_type,
      	rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
      	htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
      	rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
      	to rs6000-call.c.
      	* config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
      	cpu_supports_info, builtin_hash_struct, builtin_hasher,
      	builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
      	rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
      	rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
      	init_cumulative_args, rs6000_promote_function_mode,
      	rs6000_must_pass_in_stack, is_complex_IBM_long_double,
      	abi_v4_pass_in_fpr, rs6000_function_arg_padding,
      	rs6000_function_arg_boundary, rs6000_parm_offset,
      	rs6000_parm_start, rs6000_arg_size,
      	rs6000_darwin64_record_arg_advance_flush,
      	rs6000_darwin64_record_arg_advance_recurse,
      	rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
      	rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
      	rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
      	rs6000_mixed_function_arg, rs6000_psave_function_arg,
      	rs6000_finish_function_arg, rs6000_function_arg,
      	rs6000_arg_partial_bytes, rs6000_pass_by_reference,
      	rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
      	rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
      	setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
      	rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
      	bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
      	bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
      	rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
      	rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
      	rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
      	altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
      	altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
      	altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
      	altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
      	htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
      	altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
      	get_element_number, altivec_expand_vec_set_builtin,
      	altivec_expand_vec_ext_builtin, altivec_expand_builtin,
      	rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
      	rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
      	fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
      	fold_mergeeo_helper, rs6000_gimple_fold_builtin,
      	rs6000_expand_builtin, rs6000_vector_type,
      	rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
      	htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
      	rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
      	to here from rs6000.c.
      	* config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
      	rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
      	rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
      	rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
      	rs6000_gimplify_va_arg, rs6000_promote_function_mode,
      	rs6000_return_in_memory, rs6000_return_in_msb,
      	rs6000_pass_by_reference, setup_incoming_varargs,
      	rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
      	rs6000_arg_partial_bytes, rs6000_function_arg_advance,
      	rs6000_function_arg_padding, rs6000_function_arg,
      	rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
      	rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
      	rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
      	rs6000_passes_long_double, rs6000_passes_vector,
      	rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
      	altivec_builtin_mask_for_load) Add declarations.
      	* config/rs6000/t-rs6000: Add new source file rs6000-call.c.
      	* config/config.gcc: Add new source file rs6000-call.c to garbage
      	collector and extra_objs.
      
      From-SVN: r273607
      Bill Seurer committed
    • tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle strncpy. · 192ece9e
      	* tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
      	strncpy.  Drop some trivial dead code.
      	(maybe_trim_memstar_call): Handle strncpy.
      
      	* gcc.dg/tree-ssa/ssa-dse-37.c: New test.
      	* gcc.dg/tree-ssa/ssa-dse-38.c: New test.
      
      From-SVN: r273606
      Jeff Law committed
    • re PR tree-optimization/91211 (wrong code with __builtin_memset() and… · 6b68f00d
      re PR tree-optimization/91211 (wrong code with __builtin_memset() and __builtin_memcpy() at -O1 and above)
      
      2019-07-19  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91211
      	* tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
      	memset encoding size.
      
      	* gcc.dg/torture/pr91211.c: New testcase.
      
      From-SVN: r273605
      Richard Biener committed
    • re PR target/91204 (ICE in expand_expr_real_2, at expr.c:9215 with -O3) · d826ea32
      	PR target/91204
      	* config/i386/mmx.md (one_cmpl<mode>2): New expander.
      
      From-SVN: r273604
      Uros Bizjak committed