Commit Graph

171093 Commits

Author SHA1 Message Date
Jose E. Marchesi a5362c6aea testsuite: new require effective target indirect_calls
This patch adds a new dg_require_effective_target procedure to the
testsuite infrastructure: indirect_calls.  This new function tells
whether a target supports calls to non-constant call targets.
    
This patch also annotates the tests in the gcc.c-torture testuite that
require support for indirect calls.
    
    gcc/ChangeLog:
    
            * doc/sourcebuild.texi (Effective-Target Keywords): Document
            indirect_calls.
    
    gcc/testsuite/ChangeLog:
    
            * lib/target-supports.exp (check_effective_target_indirect_calls):
            New proc.
            * gcc.c-torture/compile/20010102-1.c: Annotate with
            dg-require-effective-target indirect_calls.
            * gcc.c-torture/compile/20010107-1.c: Likewise.
            * gcc.c-torture/compile/20011109-1.c: Likewise.
            * gcc.c-torture/compile/20011218-1.c: Likewise.
            * gcc.c-torture/compile/20011229-1.c: Likewise.
            * gcc.c-torture/compile/20020129-1.c: Likewise.
            * gcc.c-torture/compile/20020320-1.c: Likewise.
            * gcc.c-torture/compile/20020706-1.c: Likewise.
            * gcc.c-torture/compile/20020706-2.c: Likewise.
            * gcc.c-torture/compile/20021205-1.c: Likewise.
            * gcc.c-torture/compile/20030921-1.c: Likewise.
            * gcc.c-torture/compile/20031023-1.c: Likewise.
            * gcc.c-torture/compile/20031023-2.c: Likewise.
            * gcc.c-torture/compile/20031023-3.c: Likewise.
            * gcc.c-torture/compile/20031023-4.c: Likewise.
            * gcc.c-torture/compile/20040614-1.c: Likewise.
            * gcc.c-torture/compile/20040909-1.c: Likewise.
            * gcc.c-torture/compile/20050122-1.c: Likewise.
            * gcc.c-torture/compile/20050202-1.c: Likewise.
            * gcc.c-torture/compile/20060208-1.c: Likewise.
            * gcc.c-torture/compile/20081108-1.c: Likewise.
            * gcc.c-torture/compile/20150327.c: Likewise.
            * gcc.c-torture/compile/920428-2.c: Likewise.
            * gcc.c-torture/compile/920928-5.c: Likewise.
            * gcc.c-torture/compile/930117-1.c: Likewise.
            * gcc.c-torture/compile/930607-1.c: Likewise.
            * gcc.c-torture/compile/991213-2.c: Likewise.
            * gcc.c-torture/compile/callind.c: Likewise.
            * gcc.c-torture/compile/calls-void.c: Likewise.
            * gcc.c-torture/compile/calls.c: Likewise.
            * gcc.c-torture/compile/pr21840.c: Likewise.
            * gcc.c-torture/compile/pr32139.c: Likewise.
            * gcc.c-torture/compile/pr35607.c: Likewise.
            * gcc.c-torture/compile/pr37433-1.c: Likewise.
            * gcc.c-torture/compile/pr37433.c: Likewise.
            * gcc.c-torture/compile/pr39941.c: Likewise.
            * gcc.c-torture/compile/pr40080.c: Likewise.
            * gcc.c-torture/compile/pr43635.c: Likewise.
            * gcc.c-torture/compile/pr43791.c: Likewise.
            * gcc.c-torture/compile/pr43845.c: Likewise.
            * gcc.c-torture/compile/pr44043.c: Likewise.
            * gcc.c-torture/compile/pr51694.c: Likewise.
            * gcc.c-torture/compile/pr77754-2.c: Likewise.
            * gcc.c-torture/compile/pr77754-3.c: Likewise.
            * gcc.c-torture/compile/pr77754-4.c: Likewise.
            * gcc.c-torture/compile/pr89663-2.c: Likewise.
            * gcc.c-torture/compile/pta-1.c: Likewise.
            * gcc.c-torture/compile/stack-check-1.c: Likewise.
            * gcc.dg/Walloc-size-larger-than-18.c: Likewise.

From-SVN: r275505
2019-09-09 11:55:10 +02:00
Jose E. Marchesi e9b8025bb0 testsuite: annotate c-torture/compile tests with dg-require-stack-size
This patch annotates tests that make use of a significant a mount of
stack space.  Embedded and other restricted targets may have problems
compiling and running these tests.  Note that the annotations are in
many cases not exact.
    
testsuite/ChangeLog:
    
        * gcc.c-torture/compile/20000609-1.c: Annotate with
        dg-require-stack-size.
        * gcc.c-torture/compile/20000804-1.c: Likewise.
        * gcc.c-torture/compile/20020304-1.c: Likewise.
        * gcc.c-torture/compile/20020604-1.c: Likewise.
        * gcc.c-torture/compile/20021015-1.c: Likewise.
        * gcc.c-torture/compile/20050303-1.c: Likewise.
        * gcc.c-torture/compile/20060421-1.c: Likewise.
        * gcc.c-torture/compile/20071207-1.c: Likewise.
        * gcc.c-torture/compile/20080903-1.c: Likewise.
        * gcc.c-torture/compile/20121027-1.c: Likewise.
        * gcc.c-torture/compile/20151204.c: Likewise.
        * gcc.c-torture/compile/920501-12.c: Likewise.
        * gcc.c-torture/compile/920501-4.c: Likewise.
        * gcc.c-torture/compile/920723-1.c: Likewise.
        * gcc.c-torture/compile/921202-1.c: Likewise.
        * gcc.c-torture/compile/931003-1.c: Likewise.
        * gcc.c-torture/compile/931004-1.c: Likewise.
        * gcc.c-torture/compile/950719-1.c: Likewise.
        * gcc.c-torture/compile/951222-1.c: Likewise.
        * gcc.c-torture/compile/990517-1.c: Likewise.
        * gcc.c-torture/compile/bcopy.c: Likewise.
        * gcc.c-torture/compile/pr23929.c: Likewise.
        * gcc.c-torture/compile/pr25310.c: Likewise.
        * gcc.c-torture/compile/pr34458.c: Likewise.
        * gcc.c-torture/compile/pr39937.c: Likewise.
        * gcc.c-torture/compile/pr41181.c: Likewise.
        * gcc.c-torture/compile/pr41634.c: Likewise.
        * gcc.c-torture/compile/pr43415.c: Likewise.
        * gcc.c-torture/compile/pr43417.c: Likewise.
        * gcc.c-torture/compile/pr44788.c: Likewise.
        * gcc.c-torture/compile/sound.c: Likewise.

From-SVN: r275504
2019-09-09 11:49:34 +02:00
Jose E. Marchesi 4bc8aadf03 opt-functions.awk: fix comparison of limit, begin and end
The function integer_range_info makes sure that, if provided, the
initial value fills in the especified range.  However, it is necessary
to convert the values to a numerical context before comparing, to make
sure awk is using arithmetical order and not lexicographical order.
    
gcc/ChangeLog:
    
      * opt-functions.awk (integer_range_info): Make sure values are in
      numeric context before operating with them.

From-SVN: r275503
2019-09-09 11:44:23 +02:00
Jose E. Marchesi b7b1f65711 Update config.sub and config.guess.
* config.sub: Import upstream version 2019-06-30.
    * config.guess: Import upstream version 2019-07-24.

From-SVN: r275502
2019-09-09 11:14:32 +02:00
GCC Administrator 108d64adca Daily bump.
From-SVN: r275501
2019-09-09 00:17:08 +00:00
Segher Boessenkool 9976b31c66 genemit: Print file+line in the "Splitting with" message
It's tiresome to have to look in insn-emit.c to see where some split
came from, so let's print that info to the dump file as well.  But
don't print the full path, just the basename, for greater readability.


	* genemit.c (gen_split): Print the filename and line number where the
	splitter (or peephole2) was defined, to the dump file.

From-SVN: r275497
2019-09-08 22:58:18 +02:00
GCC Administrator 30b94f5520 Daily bump.
From-SVN: r275493
2019-09-08 00:16:34 +00:00
Bernd Edlinger 70ca91f5d4 pr91684.c: Use effective-target arm_prefer_ldrd_strd.
2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.target/arm/pr91684.c: Use effective-target arm_prefer_ldrd_strd.

From-SVN: r275489
2019-09-07 18:26:26 +00:00
David Edelsohn e950ddb04b decomp2.C: Add TLS options.
* g++.dg/cpp2a/decomp2.C: Add TLS options.
        * gcc.target/powerpc/pr88233.c: Limit to lp64.

From-SVN: r275488
2019-09-07 11:23:51 -04:00
Jakub Jelinek 44a06a7095 re PR tree-optimization/91665 (ICE in build_vector_from_val, at tree.c:1904)
PR tree-optimization/91665
	* tree-vect-loop.c (vectorizable_reduction): Punt if base has type
	incompatible with the type of PHI result.

	* gcc.dg/vect/pr91665.c: New test.

From-SVN: r275486
2019-09-07 11:52:01 +02:00
Bernd Edlinger 8b2d8beb9f add PR target/91684 to ChangeLog
From-SVN: r275484
2019-09-07 05:11:16 +00:00
Bernd Edlinger d405dc2302 arm.c (arm_block_set_aligned_non_vect): Use gen_unaligned_storedi for 4-byte aligned addresses.
2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
        gen_unaligned_storedi for 4-byte aligned addresses.

testsuite:
2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.target/arm/pr91684.c: New test.

From-SVN: r275483
2019-09-07 04:38:58 +00:00
GCC Administrator 7397488502 Daily bump.
From-SVN: r275482
2019-09-07 00:16:46 +00:00
Jim Wilson 2f4d895197 RISC-V: Re-enable -msave-restore for shared libraries.
This re-enables -msave-restore for shared libraries, and uses the
t-slibgcc-libgcc file to get the save-restore routines included directly
in shared libraries so that we don't need to indirect through the PLT
to reach them, which doesn't work.

	gcc/
	* config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
	change.

	libgcc/
	* config.host (riscv*-*-linux*): Add t-slibgcc-libgcc to tmake_file.
	(riscv*-*-freebsd*): Likewise.

From-SVN: r275478
2019-09-06 17:09:21 -07:00
Segher Boessenkool e83573abb3 rs6000: Delete UNSPEC_MV_CR_OV.
This isn't used since 2018.  (It's a remnant of paired single support).


	* config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.

From-SVN: r275477
2019-09-06 21:43:47 +02:00
Segher Boessenkool 9393ab7492 rs6000: Delete UNSPEC_FRSP
This isn't used since 2012.  (It's a remnant of RIOS support).


	* config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
	* config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.

From-SVN: r275476
2019-09-06 21:42:38 +02:00
Uros Bizjak 4e9ad7c9d8 re PR target/91654 (Regressions of SPEC2017 rate caused by r274994)
PR target/91654
	* config/i386/x86-tune-costs.h (skylake_cost): Raise the
	cost of SSE->integer and integer->SSE moves from 2 to 6.
	(core_cost): Ditto.

From-SVN: r275475
2019-09-06 21:27:58 +02:00
Ian Lance Taylor aa8901e9bb libgo: update to Go 1.13beta1 release
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497

From-SVN: r275473
2019-09-06 18:12:46 +00:00
Jakub Jelinek 920ea3b8ba function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P before testing TYPE_TRANSPARENT_AGGR.
* function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
	before testing TYPE_TRANSPARENT_AGGR.
	* calls.c (initialize_argument_information, load_register_parameters):
	Likewise.

From-SVN: r275472
2019-09-06 19:33:41 +02:00
David Edelsohn 28d67c175f inf-compare-1.c: Skip AIX.
* gcc.dg/torture/inf-compare-1.c: Skip AIX.
        * gcc.dg/torture/inf-compare-2.c: Skip AIX.
        * gcc.dg/torture/inf-compare-3.c: Skip AIX.
        * gcc.dg/torture/inf-compare-4.c: Skip AIX.
        * gcc.dg/torture/pr52451.c: Skip AIX.
        * gcc.dg/torture/pr68264.c: Skip AIX
        * gcc.dg/torture/pr91323.c: Skip AIX.

From-SVN: r275464
2019-09-06 11:29:01 -04:00
David Edelsohn 613d4e784c Warray-bounds-4.C: Skip AIX.
* g++.dg/warn/Warray-bounds-4.C: Skip AIX.
        * g++.dg/warn/Warray-bounds-8.C: Skip AIX.
        * g++.dg/opt/flifetime-dse2.C: XFAIL AIX.
        * g++.dg/opt/flifetime-dse4.C: XFAIL AIX.

From-SVN: r275462
2019-09-06 11:24:28 -04:00
Caroline Tice 94ea5c6a51 Fix testcase to not use LTO with -fvtable-verify.
2019-09-05  Caroline Tice  <cmtice@google.com>

        PR testsuite/91670
        * g++.dg/ubsan/pr59415.C: Disable LTO, since test uses
        -fvtable-verify, and the two options are no longer allowed
        together.

From-SVN: r275460
2019-09-06 07:54:48 -07:00
Jonathan Wakely 4ef5bbd815 Define std::ssize for C++20 (P1227R2)
* include/bits/range_access.h (ssize): Define for C++20.
	* testsuite/24_iterators/range_access_cpp20.cc: New test.
	* doc/xml/manual/status_cxx2020.xml: Update P1227R2 status.
	* doc/html/*: Regenerate.

From-SVN: r275458
2019-09-06 13:54:51 +01:00
Nathan Sidwell 400b8274e6 [preprocessor] Popping "" file names
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg02069.html
	New # semantics for popping to "" name.
	libcpp/
	* directives.c (do_linemarker): Popping to "" name means get the
	name from the include stack..

From-SVN: r275457
2019-09-06 12:54:19 +00:00
Nathan Sidwell aff342a3c1 [PATCH] Deprecate -frepo option.
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00379.html
	PR c++/91125
	* cp-tree.h (IDENTIFIER_REPO_CHOSEN, DECL_REPO_AVAILABLE_P): Delete.
	(struct lang_decl_base): Remove repo_available_p.
	* decl.c (duplicate_decls): Don't copy DECL_REPO_AVAILABLE_P.

From-SVN: r275456
2019-09-06 12:51:44 +00:00
Nathan Sidwell c0c2096fba [C++ PATCH] Reserve a decl_lang bit
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00365.html
	Reserve TREE_LANG_FLAG_3 for modules.
	gcc/cp/
	* cp-tree.h (DECL_CONSTRUCTION_VTABLE_P): Delete.
	(DECL_NON_TRIVIALLY_INITIALIZED_P): Move to TREE_LANG_FLAG_6.
	* class.c (build_ctor_vtbl_group): Don't set
	DECL_CONSTRUCTION_VTABLE_P.
	* decl2.c (determine_visibility_from_class): Don't check
	DECL_CONSTRUCTION_VTABLE_P anymore.

From-SVN: r275455
2019-09-06 11:22:09 +00:00
Florian Weimer 3c086f8dec Fix GCC_LINUX_FUTEX to work with C99 compilers
Without this change, libstdc++ is built without futex symbols if GCC
rejects implicit function declarations by default.

From-SVN: r275454
2019-09-06 12:27:36 +02:00
Richard Earnshaw 7d99a5b62c [arm] Add missing predicated-short-it variants to cmp_and and cmp_ior patterns
The cmp_and and cmp_ior patterns were missing a couple of short-it
variants for thumb2, where the comparisons are all using registers
some of which were HI_REGS.

	* config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
	high regs.
	(cmp_ior): Likewise.

From-SVN: r275453
2019-09-06 09:58:14 +00:00
Martin Liska 973159f219 Improve documentation of for statement.
2019-09-06  Martin Liska  <mliska@suse.cz>

	* doc/match-and-simplify.texi: Separate tuples with ;.

From-SVN: r275452
2019-09-06 09:38:28 +00:00
Martin Liska 67f6e64994 Remove support for repo files (PR c++/91125).
2019-09-06  Martin Liska  <mliska@suse.cz>

	PR c++/91125
	* Makefile.in: Remove tlink.o.
	* collect2.c (do_link): New function isolated
	from do_tlink.
	(main): Use.
	* collect2.h (do_tlink): Remove declaration of do_tlink.
	* doc/extend.texi: Remove documentation of -frepo.
	* doc/invoke.texi: Likewise.
	* doc/sourcebuild.texi: Remove cleanup-repo-files.
	* tlink.c: Remove.
2019-09-06  Martin Liska  <mliska@suse.cz>

	PR c++/91125
	* c-common.c: Remove definition of flag_use_repository.
	* c-common.h: Likewise.
	* c-opts.c (c_common_handle_option):
	Do not handle OPT_frepo option.
	* c.opt: Mark the option with Deprecated.
2019-09-06  Martin Liska  <mliska@suse.cz>

	PR c++/91125
	* Make-lang.in: Remove repo.o.
	* config-lang.in: Likewise.
	* cp-tree.h (init_repo): Remove declarations
	of repo-related functions.
	(repo_emit_p): Likewise.
	(repo_export_class_p): Likewise.
	(finish_repo): Likewise.
	* decl2.c (import_export_class): Always
	set -1 value/
	(mark_needed): Remove -frepo from comment.
	(import_export_decl): Similarly here.
	(c_parse_final_cleanups): Remove call of finish_repo.
	* lex.c (cxx_init): Remove call to init_repo.
	* optimize.c (can_alias_cdtor): Remove dead condition.
	* pt.c (push_template_decl_real): Update comment.
	(instantiate_decl): Remove dead code used for -frepo.
	* repo.c: Remove.
2019-09-06  Martin Liska  <mliska@suse.cz>

	PR c++/91125
	* g++.dg/parse/repo1.C: Remove.
	* g++.dg/rtti/repo1.C: Remove.
	* g++.dg/template/repo1.C: Remove.
	* g++.dg/template/repo10.C: Remove.
	* g++.dg/template/repo11.C: Remove.
	* g++.dg/template/repo2.C: Remove.
	* g++.dg/template/repo3.C: Remove.
	* g++.dg/template/repo4.C: Remove.
	* g++.dg/template/repo5.C: Remove.
	* g++.dg/template/repo6.C: Remove.
	* g++.dg/template/repo7.C: Remove.
	* g++.dg/template/repo8.C: Remove.
	* g++.dg/template/repo9.C: Remove.
	* g++.old-deja/g++.pt/instantiate4.C: Remove.
	* g++.old-deja/g++.pt/instantiate6.C: Remove.
	* g++.old-deja/g++.pt/repo1.C: Remove.
	* g++.old-deja/g++.pt/repo2.C: Remove.
	* g++.old-deja/g++.pt/repo3.C: Remove.
	* g++.old-deja/g++.pt/repo4.C: Remove.
	* lib/g++.exp: Remove removal of repo files.
	* lib/gcc-dg.exp: Likewise.
	* lib/obj-c++.exp: Likewise.

From-SVN: r275450
2019-09-06 06:58:42 +00:00
GCC Administrator ebd247d4b3 Daily bump.
From-SVN: r275449
2019-09-06 00:16:38 +00:00
Jakub Jelinek 36ec3f57d3 RISC-V: Fix bad insn splits with paradoxical subregs.
Shifting by more than the size of a SUBREG_REG doesn't work, so we either
need to disable splits if an input is paradoxical, or else we need to
generate a clean temporary for intermediate results.

Jakub wrote the first version of this patch, so gets primary credit for it.

	gcc/
	PR target/91635
	* config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
	extend<SHORT:mode><SUPERQI:mode>2): Don't split if
	paradoxical_subreg_p (operands[0]).
	(*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
	use as intermediate value.

	gcc/testsuite/
	PR target/91635
	* gcc.c-torture/execute/pr91635.c: New test.
	* gcc.target/riscv/shift-shift-4.c: New test.
	* gcc.target/riscv/shift-shift-5.c: New test.

Co-Authored-By: Jim Wilson <jimw@sifive.com>

From-SVN: r275444
2019-09-05 13:32:55 -07:00
Harald Anlauf 3c0f026505 re PR fortran/91496 (!GCC$ directives error if mistyped or unknown)
2019-09-05  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/91496
	* parse.c (parse_executable): Improve error messages for
	improperly placed pragmas not preceeding a loop.

	PR fortran/91496
	* gfortran.dg/directive_unroll_5.f90: Adjust error message.

From-SVN: r275442
2019-09-05 20:13:00 +00:00
Steven G. Kargl 0e521c6461 re PR fortran/91660 (Missing error on invalid type declaration)
2019-09-05  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/91660
	* decl.c (gfc_match_decl_type_spec): Improve and restore error
	message for malformed types-spec.

2019-09-05  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/91660
	* gfortran.dg/pdt_4.f03: Fix invalid code.
	* gfortran.dg/pr91660_1.f90: New test.
	* gfortran.dg/pr91660_2.f90: Ditto.

From-SVN: r275426
2019-09-05 18:14:34 +00:00
Marek Polacek bb64bef659 PR c++/91644 - ICE with constinit in function template.
* decl.c (start_decl): Call retrofit_lang_decl for constinit variables.
	* pt.c (tsubst_expr): Pass LOOKUP_CONSTINIT down to cp_finish_decl for
	constinit variables.

	* g++.dg/cpp2a/constinit13.C: New test.

From-SVN: r275421
2019-09-05 15:37:52 +00:00
Andrew Stubbs b2c113aed6 Global GCN instructions need nops too.
2019-09-05  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
	(sync_compare_and_swap<mode>_insn): Likewise.

From-SVN: r275414
2019-09-05 14:21:28 +00:00
Jonathan Wakely b5c433ce11 Improve precondition checks for std::span
* doc/xml/manual/status_cxx2020.xml: Update status for P0122R7 and
	P1024R3. Remove entry for P0920R2.
	* include/std/span  (__cpp_lib_span): Change value.
	(__extent_storage, __extent_storage<dynamic_extent>): Remove default
	constructor.
	(span): Replace __extent_storage base class with data member.
	(span::_S_subspan_extent): New function.
	(span::empty()): Add nodiscard attribute.
	(span::front, span::back, span::operator[]): Check preconditions.
	(span::first, span::last, span::subspan): Add noexcept. Improve
	precondition checks (LWG 3103).
	(get): Remove redundant condition from static_assert.
	(tuple_element<I, span<T, E>>): Fix static_assert message and simplify.
	(as_writable_bytes): Add inline specifier.
	* include/std/version (__cpp_lib_span): Change value.
	* testsuite/23_containers/span/back_neg.cc: Remove stray semi-colon.
	* testsuite/23_containers/span/front_neg.cc: Likewise.
	* testsuite/23_containers/span/index_op_neg.cc: Likewise.
	* testsuite/23_containers/span/last_neg.cc: Improve test.
	* testsuite/23_containers/span/subspan_neg.cc: Likewise.
	* testsuite/23_containers/span/1.cc: New test.
	* testsuite/23_containers/span/2.cc: New test.
	* testsuite/23_containers/span/back_assert_neg.cc: New test.
	* testsuite/23_containers/span/first_2_assert_neg.cc: New test.
	* testsuite/23_containers/span/first_assert_neg.cc: New test.
	* testsuite/23_containers/span/first_neg.cc: New test.
	* testsuite/23_containers/span/front_assert_neg.cc: New test.
	* testsuite/23_containers/span/index_op_assert_neg.cc: New test.
	* testsuite/23_containers/span/last_2_assert_neg.cc: New test.
	* testsuite/23_containers/span/last_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_2_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_3_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_4_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_5_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_6_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_assert_neg.cc: New test.

From-SVN: r275411
2019-09-05 14:48:33 +01:00
Bernd Edlinger 55e8f926f2 re PR target/91615 ([armeb] ICEs since r274986)
2019-09-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR middle-end/91615
        * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
        without movmisalign optab.

From-SVN: r275409
2019-09-05 13:40:17 +00:00
Jakub Jelinek 728347922a re PR middle-end/91001 (internal compiler error: in extract_insn, at recog.c:2310)
PR middle-end/91001
	PR middle-end/91105
	PR middle-end/91106
	* calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
	types, use type of their first field instead of type of
	args[i].tree_value.

	* gcc.c-torture/compile/pr91001.c: New test.

From-SVN: r275408
2019-09-05 15:30:23 +02:00
Richard Biener 5a4c9a4931 re PR rtl-optimization/91656 (wrong code with -fgcse-after-reload)
2019-09-05  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/91656
	* postreload-gcse.c (record_last_mem_set_info): Revert addition
	of early out.

	* gcc.dg/torture/pr91656-1.c: New testcase.
	* gcc.dg/torture/pr91656-2.c: Likewise.
	* gcc.dg/torture/pr91656-3.c: Likewise.

From-SVN: r275406
2019-09-05 13:23:28 +00:00
Nathan Sidwell b101938436 [C++ PATCH] vtable decl marking
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg02063.html
	* cp-tree.h (DECL_VTABLE_OR_VTT_P): Forward to DECL_VIRTUAL_P.

From-SVN: r275404
2019-09-05 11:31:08 +00:00
JeanHeyd Meneide 95e9a7616d Implement std::span for C++20
2019-09-05  JeanHeyd Meneide  <phdofthehouse@gmail.com>

	* include/Makefile.am: Add <span> header.
	* include/Makefile.in: Regenerate.
	* include/bits/range_access.h (__adl_begin, __adl_end, __adl_cbegin)
	(__adl_cend, __adl_rbegin, __adl_rend, __adl_crbegin, __adl_crend)
	(__adl_data, __adl_cdata, __adl_size, __adl_empty, __adl_to_address):
	New functions for performing argument-dependent lookup of range
	customization points.
	* include/bits/stl_iterator.h (__normal_iterator): Add
	_GLIBCXX20_CONSTEXPR to all functions.
	* include/std/span: New header.
	* include/std/version (__cpp_lib_span): Define feature test macro.
	* testsuite/23_containers/span/contiguous_range_neg.cc: New test.
	* testsuite/23_containers/span/everything.cc: New test.
	* testsuite/23_containers/span/get_neg.cc: New test.
	* testsuite/23_containers/span/last_neg.cc: New test.
	* testsuite/23_containers/span/subspan_neg.cc: New test.
	* testsuite/23_containers/span/tuple_element_dynamic_neg.cc: New test.
	* testsuite/23_containers/span/tuple_element_oob_neg.cc: New test.
	* testsuite/23_containers/span/tuple_size_neg.cc: New test.

From-SVN: r275403
2019-09-05 12:27:45 +01:00
Nathan Sidwell 056f95ec95 [preprocessor/91639] #includes at EOF
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00280.html
	libcpp/
	PR preprocessor/91639
	* directives.c (do_include_common): Tell lexer we're a #include.
	* files.c (_cpp_stack_file): Lexer will have always incremented.
	* internal.h (struct cpp_context): Extend in_directive's
	semantics.
	* lex.c (_cpp_lex_direct): Increment line for final \n when lexing
	for an ISO #include.
	* line-map.c (linemap_line_start): Remember if we overflowed.

	gcc/testsuite/
	PR preprocessor/91639
	* c-c++-common/cpp/pr91639.c: New.
	* c-c++-common/cpp/pr91639-one.h: New.
	* c-c++-common/cpp/pr91639-two.h: New.

From-SVN: r275402
2019-09-05 11:23:48 +00:00
Richard Biener e7414688f1 re PR middle-end/90501 (ICE: address taken, but ADDRESSABLE bit not set)
2019-09-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/90501
	* tree-inline.c (declare_return_variable): Mark the return
	slot as addressable after building an address of it.

From-SVN: r275401
2019-09-05 11:02:43 +00:00
Arnaud Charlet 0fd3ee9234 install.texi: Update and clarify requirements to build GNAT.
* doc/install.texi: Update and clarify requirements to build GNAT.

From-SVN: r275400
2019-09-05 11:51:38 +02:00
Richard Sandiford 359f25f8e2 Force IFN_LOAD/STORE_LANES operands to be memory (PR91577)
This patch uses the workaround Richi suggested in the PR: make
discover_nonconstant_array_refs mark the source of an IFN_LOAD_LANES
call and the destination of an IFN_STORE_LANES call as addressable,
so that they don't end up being REG rtxes during expansion.

I had to move the discover_nonconstant_array_refs call outside the
currently_expanding_to_rtl block since otherwise mark_addressable
just queues the decision for later.

2019-09-05  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	PR middle-end/91577
	* cfgexpand.c (discover_nonconstant_array_refs): Force the source
	of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
	call to be in memory.
	(pass_expand::execute): Call discover_nonconstant_array_refs before
	setting currently_expanding_to_rtl.

gcc/testsuite/
	PR middle-end/91577
	* gfortran.dg/pr91577.f90: New test, taken from temporary_1.f90.

From-SVN: r275399
2019-09-05 07:50:07 +00:00
Jonathan Wakely efd9a01b59 Remove broken URL from libstdc++ manual
The URL for the "What Are Allocators Good For?" article has been a
recurring source of problems. It moved from the C/C++ Users Journal
website to the Dr Dobbs site after CUJ shut down, and the original
domain changed hands, leaving old links pointing to nefarious sites.

Now the URL to the copy on drdobbs.com no longer works either and I
can't find a (legal) copy of the article online. The simplest solution
is to remove the URL.

	* doc/xml/manual/allocator.xml: Remove URL for bibliography entry.
	* doc/html/*: Regenerate.

From-SVN: r275398
2019-09-05 08:46:00 +01:00
Janne Blomqvist 0eaee4abb1 Improve PRNG jumping when using threads
Currently, when a new thread needs to use the RANDOM_NUMBER intrinsic,
the per-thread PRNG state is initialized by copying the master state
and then jumping forwards N*2**128 entries in the stream so that the
PRNG streams for different threads don't alias each other, where N is
the number of threads that have so far initialized the PRNG.

With this patch the master state itself is jumped forwards once each
time a new thread initializes the PRNG, thus obviating the need to
jump through all the N-1 previous streams. Effectively turning an O(N)
algorithm into an O(1) one.

Regtested on x86_64-pc-linux-gnu.

libgfortran/ChangeLog:

2019-09-05  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/random.c (master_init): Replace with
	master_state.init.
	(njumps): Remove variable.
	(master_state): Make instance of struct prng_state.
	(init_rand_state): When jumping, update the master_state once
	instead of keeping track of how many jumps need to be done.
	(SZU64): Modify to handle new master_state.
	(SZ): Likewise.
	(random_seed_i4): Likewise.
	(random_seed_i8): Likewise.

From-SVN: r275397
2019-09-05 09:59:55 +03:00
Ian Lance Taylor f44526e367 re PR tree-optimization/91663 (split function can be re-inlined, leaving bad stack trace)
PR tree-optimization/91663
	* go-lang.c (go_langhook_post_options): Clear
	flag_partial_inlining.

From-SVN: r275396
2019-09-05 04:12:30 +00:00
GCC Administrator 7d394f772f Daily bump.
From-SVN: r275395
2019-09-05 00:16:27 +00:00