aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-07-01testsuite: Adjust gfortran.dg/pr95690.f90 line number.David Edelsohn1-2/+2
gfortran produces associates a different line number for the same error message depending on x86 versus other architectures. This patch adjusts the dg-error line number depending on the target. gcc/testsuite/ChangeLog 2020-07-01 David Edelsohn <dje.gcc@gmail.com> * gfortran.dg/pr95690.f90: Adjust dg-error line number.
2020-07-01testsuite: Restore lp64 for some gcc.target/powerpc testcases.David Edelsohn8-8/+8
gcc/testsuite/ChangeLog 2020-07-01 David Edelsohn <dje.gcc@gmail.com> * gcc.target/powerpc/direct-move-double1.c: Require lp64. * gcc.target/powerpc/direct-move-float1.c: Same. * gcc.target/powerpc/direct-move-float3.c: Same. * gcc.target/powerpc/direct-move-vint1.c: Same. * gcc.target/powerpc/vsx-vector-5.c: Same. * gcc.target/powerpc/vsx-vector-6.p7.c: Same. * gcc.target/powerpc/vsx-vector-6.p8.c: Same. * gcc.target/powerpc/vsx-vector-6.p9.c: Same.
2020-07-01Fix bootstrap for m68k.Jeff Law1-6/+6
gcc/ * config/m68k/m68k.c (m68k_output_btst): Drop "register" keyword. (emit_move_sequence, output_iorsi3, output_xorsi3): Likewise.
2020-07-01Fortran : Fortran translation issues PR52279Mark Eggleston8-62/+62
Mark strings for translation by enclosing in G_() and _(). 2020-06-24 Mark Eggleston <markeggleston@gcc.gnu.org> gcc/fortran/ PR fortran/52279 * arith.c (reduce_binary_aa): Mark for translation the string parameter to gfc_check_conformance with G_(). * check.c (gfc_invalid_boz): Mark hint for translation using _(). (gfc_check_achar): Mark for translation the message parameter to gfc_invalid_boz using G_(). (gfc_check_char): Mark for translation the message parameter to gfc_invalid_boz using G_(). (gfc_check_complex): Mark for translation the message parameter to gfc_invalid_boz using G_(). (gfc_check_float): Mark for translation the message parameter to gfc_invalid_boz using G_(). (check_rest): Mark for translation the string parameter to gfc_check_conformance with _(). (gfc_check_minloc_maxloc): Mark for translation the string parameter to gfc_check_conformance with _(). (gfc_check_findloc): Mark for translation the string parameter to gfc_check_conformance with _(). (check_reduction): Mark for translation the string parameter to gfc_check_conformance with _(). (gfc_check_pack): Mark for translation the string parameter to gfc_check_conformance with _(). * decl.c (match_old_style_init): Mark for translation the message parameter to gfc_invalid_boz using G_(). * expr.c (gfc_check_assign): Mark for translation the string parameter to gfc_check_conformance with _(). * intrinsic.c (check_specific): Mark for translation the string parameter to gfc_check_conformance with _(). (gfc_check_intrinsic_standard): Mark symstd_msg strings for translation using G_(). No need to mark symstd_msg for translation in call to gfc_warning or when setting symstd. * io.c (check_open_constraints): Mark strings for translation using G_() in all calls to warn_or_error. (match_io_element): Mark for translation the message parameter to gfc_invalid_boz using G_(). * primary.c (match_boz_constant): Mark for translation the message parameter to gfc_invalid_boz using G_(). * resolve.c (resolve_elemental_actual): Mark for translation the string parameter to gfc_check_conformance with _(). (resolve_operator): Mark for translation the string parameter to gfc_check_conformance with _(). Mark translation strings assigned to msg using G_() for use in a call to cfg_warning.
2020-07-01c++: Expose cloning form predicatesNathan Sidwell2-34/+41
A further adjustment of the function cloning. Rather than have copy_fndecl_with_name deduce whether a particular cdtor needs a vtt_parm and/or has inherited parms to drop, pass that information in from the caller. In particular build_cdtor_clones knows when its building the particular cdtors that might need these. On the modules branch I need to clone cdtors before the underlying class information is necessarily complete. There build_cdtor_clones is externally callable to facilitate that. gcc/cp/ * class.c (copy_fndecl_with_name): Add additional predicate args, do not deduce them locally. (copy_operator_fn): Adjust copy_fndecl_with_name call. (build_clone): Add vtt and inherited predicate args. Pass through to copy_fndecl_with_name call. (build_cdtor_clones): Likewise, pass through to build_clone as needed. (build_cdtor): Determine vtt and inherited here. * cp-tree.h (DECL_NEEDS_CTT_PARM_P): Delete.
2020-07-01aarch64: Add 64 bit setter getter fpsr fpcrAndrea Corallo8-54/+143
gcc/ChangeLog * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add enums for 64bits fpsr/fpcr getter setters builtin variants. (aarch64_init_fpsr_fpcr_builtins): New function. (aarch64_general_init_builtins): Modify to make use of the later. (aarch64_expand_fpsr_fpcr_setter): New function. (aarch64_general_expand_builtin): Modify to make use of the later. * config/aarch64/aarch64.md (@aarch64_set_<fpscr_name><GPI:mode>) (@aarch64_get_<fpscr_name><GPI:mode>): New patterns replacing and generalizing 'get_fpcr', 'set_fpsr'. * config/aarch64/iterators.md (GET_FPSCR, SET_FPSCR): New int iterators. (fpscr_name): New int attribute. * doc/extend.texi (__builtin_aarch64_get_fpcr64) (__builtin_aarch64_set_fpcr64, __builtin_aarch64_get_fpsr64) (__builtin_aarch64_set_fpsr64): Add into AArch64 Built-in Functions. gcc/testsuite/ChangeLog * gcc.target/aarch64/get_fpcr64_1.c: New test. * gcc.target/aarch64/set_fpcr64_1.c: New test. * gcc.target/aarch64/get_fpsr64_1.c: New test. * gcc.target/aarch64/set_fpsr64_1.c: New test.
2020-07-01Fortran : False positive for optional arguments PR95446Mark Eggleston3-8/+62
Check that there is non-optional argument of the same rank in the list of actual arguments. If there is the warning is not required. 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org> gcc/fortran/ PR fortran/95446 * resolve.c (resolve_elemental_actual): Add code to check for non-optional argument of the same rank. Revise warning message to refer to the Fortran 2018 standard. 2020-07-01 Mark Eggleston <markeggleston@gcc.gnu.org> gcc/testsuite/ PR fortran/95446 * gfortran.dg/elemental_optional_args_6.f90: Remove check for warnings that were erroneously output. * gfortran.dg/pr95446.f90: New test.
2020-07-01Adjust text of expected warnings changed in PR c++/86568.Martin Sebor5-16/+16
libstdc++-v3/ChangeLog: * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: Adjust text of expected warning. * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: Same. * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc: Same. * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc: Same. * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc: Same.
2020-07-01arm: Fix handler-align.c testcase [PR target/94743]Christophe Lyon1-1/+1
This testcase triggers the new warning, so compile it with -mgeneral-regs-only. 2020-07-01 Christophe Lyon <christophe.lyon@linaro.org> PR target/94743 gcc/testsuite/ * gcc.target/arm/handler-align.c: Add -mgeneral-regs-only.
2020-07-01gcov: avoid trailing space.Martin Liska1-1/+1
gcc/ChangeLog: * gcov.c (print_usage): Avoid trailing space for -j option.
2020-07-01tree-optimization/95839 - teach SLP vectorization about vector inputsRichard Biener2-15/+124
This teaches SLP analysis about vector typed externals that are fed into the SLP operations via lane extracting BIT_FIELD_REFs. It shows that there's currently no good representation for vector code on the SLP side so I went a half way and represent such vector externals uses always using a SLP permutation node with a single external SLP child which has a non-standard representation of no scalar defs but only a vector def. That works best for shielding the rest of the vectorizer from it. 2020-06-26 Richard Biener <rguenther@suse.de> PR tree-optimization/95839 * tree-vect-slp.c (vect_slp_tree_uniform_p): Pre-existing vectors are not uniform. (vect_build_slp_tree_1): Handle BIT_FIELD_REFs of vector registers. (vect_build_slp_tree_2): For groups of lane extracts from a vector register generate a permute node with a special child representing the pre-existing vector. (vect_prologue_cost_for_slp): Pre-existing vectors cost nothing. (vect_slp_analyze_node_operations): Use SLP_TREE_LANES. (vectorizable_slp_permutation): Do not generate or cost identity permutes. (vect_schedule_slp_instance): Handle pre-existing vector that are function arguments. * gcc.dg/vect/bb-slp-pr95839-2.c: New testcase.
2020-07-01move ILS include to system.hRichard Biener9-34/+28
This moves ISL system header includes to system.h. * system.h (INCLUDE_ISL): New guarded include. * graphite-dependences.c: Use it. * graphite-isl-ast-to-gimple.c: Likewise. * graphite-optimize-isl.c: Likewise. * graphite-poly.c: Likewise. * graphite-scop-detection.c: Likewise. * graphite-sese-to-poly.c: Likewise. * graphite.c: Likewise. * graphite.h: Drop the includes here.
2020-07-01gcov: shorted one option help messageMartin Liska1-1/+2
gcc/ChangeLog: * gcov.c (print_usage): Shorted option description for -j option.
2020-07-01gcov: rename 2 options.Martin Liska3-11/+15
gcc/ChangeLog: * doc/gcov.texi: Rename 2 options. * gcov.c (print_usage): Rename -i,--json-format to -j,--json-format and -j,--human-readable to -H,--human-readable. (process_args): Fix up parsing. Document obsolete options and how are they changed. gcc/testsuite/ChangeLog: * g++.dg/gcov/loop.C: Use -H option instead of -j option.
2020-07-01Fortran : Bogus error with additional blanks in type(*) PR95829Mark Eggleston2-1/+15
Checking for "* ) " instead of "*)" clears the bogus error. 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org> gcc/fortran/ PR fortran/95829 * decl.c (gfc_match_decl_type_spec): Compare with "* ) " instead of "*)". 2020-07-01 Mark Eggleston <markeggleston@gcc.gnu.org> gcc/testsuite/ PR fortran/95829 * gfortran.dg/pr95829.f90: New test.
2020-07-01arm: Fix typos in testcases [PR target/94743]Christophe Lyon2-4/+4
In my commit r11-1732, I updated the warning message to include quotes, but I forgot to update the testcases. 2020-01-07 Christophe Lyon <christophe.lyon@linaro.org> PR target/94743 gcc/testsuite/ * gcc.target/arm/pr94743-1-hard.c: Add missing quotes in expected warning. * gcc.target/arm/pr94743-1-softfp.c: Likewise.
2020-06-30Fix bootstrap failure on PAJeff Law1-4/+4
gcc/ * config/pa/pa.c (pa_emit_move_sequence): Drop register keyword. (pa_output_ascii): Likewise.
2020-07-01RISC-V: Preserve arch version info during normalizing arch stringKito Cheng2-24/+52
- Arch version should preserved if user explicitly specified the version. e.g. After normalize, -march=rv32if3d should be -march=rv32i_f3p0d instead of-march=rv32ifd. gcc/ChangeLog: * common/config/riscv/riscv-common.c (riscv_subset_t): New field added. (riscv_subset_list::parsing_subset_version): Add parameter for indicate explicitly version, and handle explicitly version. (riscv_subset_list::handle_implied_ext): Ditto. (riscv_subset_list::add): Ditto. (riscv_subset_t::riscv_subset_t): Init new field. (riscv_subset_list::to_string): Always output version info if version explicitly specified. (riscv_subset_list::parsing_subset_version): Handle explicitly arch version. (riscv_subset_list::parse_std_ext): Ditto. (riscv_subset_list::parse_multiletter_ext): Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/attribute-13.c: New.
2020-06-30testsuite: enable gcc.target/powerpc direct move tests.David Edelsohn9-9/+9
Remove unnecessary requirements for direct-move-* tests. gcc/testsuite/ChangeLog 2020-06-30 David Edelsohn <dje.gcc@gmail.com> * gcc.target/powerpc/direct-move-double1.c: Remove lp64 requirement. * gcc.target/powerpc/direct-move-double2.c: Same. * gcc.target/powerpc/direct-move-float1.c: Same. * gcc.target/powerpc/direct-move-float2.c: Same. * gcc.target/powerpc/direct-move-float3.c: Same. * gcc.target/powerpc/direct-move-vint1.c: Same. * gcc.target/powerpc/direct-move-vint2.c: Same. * gcc.target/powerpc/direct-move-long1.c: Remove linux requirement.. * gcc.target/powerpc/direct-move-long2.c: Same.
2020-06-30testsuite: Remove dg-skip SPE.David Edelsohn25-78/+0
Remove testsuite directives to skip SPE and SPE specific tests. gcc/testsuite/ChangeLog 2020-06-30 David Edelsohn <dje.gcc@gmail.com> * gcc.target/powerpc/20030218-1.c: Delete. * gcc.target/powerpc/20030505.c: Delete. * gcc.target/powerpc/20081204-1.c: Delete. * gcc.target/powerpc/bcd-1.c: Remove dg-skip-if SPE. * gcc.target/powerpc/bcd-2.c: Same. * gcc.target/powerpc/bcd-3.c: Same. * gcc.target/powerpc/direct-move-double1.c: Same. * gcc.target/powerpc/direct-move-double2.c: Same. * gcc.target/powerpc/direct-move-float1.c: Same. * gcc.target/powerpc/direct-move-float2.c: Same. * gcc.target/powerpc/direct-move-float3.c: Same. * gcc.target/powerpc/direct-move-long1.c: Same. * gcc.target/powerpc/direct-move-long2.c: Same. * gcc.target/powerpc/direct-move-vint1.c: Same. * gcc.target/powerpc/direct-move-vint2.c: Same. * gcc.target/powerpc/extend-divide-1.c: Same. * gcc.target/powerpc/extend-divide-2.c: Same. * gcc.target/powerpc/pack01.c: Same. * gcc.target/powerpc/pack02.c: Same. * gcc.target/powerpc/pack03.c: Same. * gcc.target/powerpc/pr52457.c: Same. * gcc.target/powerpc/pr88845.c: Same. * gcc.target/powerpc/quad-atomic.c: Same. * gcc.target/powerpc/recip-6.c: Same. * gcc.target/powerpc/recip-7.c: Same.
2020-06-30testsuite: p8vector-int128 require int128 not lp64.David Edelsohn2-3/+4
Change testsuite requirements from lp64 to int128 support. gcc/testsuite/ChangeLog 2020-06-30 David Edelsohn <dje.gcc@gmail.com> * gcc.target/powerpc/p8vector-int128-1.c: Require int128 not lp64. * gcc.target/powerpc/p8vector-int128-2.c: Same.
2020-06-30testsuite: Remove restrictions on VSX tests.David Edelsohn18-26/+27
Some of the testcases in gcc.target/powerpc have unnecessarily strict requirements and run correctly on more powerpc targets. This patch removes the restrictions and adds appropriate HW requirements. gcc/testsuite/ChangeLog 2020-06-30 David Edelsohn <dje.gcc@gmail.com> * gcc.target/powerpc/pr90763.c: Adjust requirements. * gcc.target/powerpc/vsx-vector-1.c: Same. * gcc.target/powerpc/vsx-vector-2.c: Same. * gcc.target/powerpc/vsx-vector-3.c: Same. * gcc.target/powerpc/vsx-vector-4.c: Same. * gcc.target/powerpc/vsx-vector-5.c: Same. * gcc.target/powerpc/vsx-vector-6.p7.c: Same. * gcc.target/powerpc/vsx-vector-6.p8.c: Same. * gcc.target/powerpc/vsx-vector-6.p9.c: Same. * gcc.target/powerpc/vsx-vector-abss.c: Same. * gcc.target/powerpc/vsx-vectorize-1.c: Same. * gcc.target/powerpc/vsx-vectorize-2.c: Same. * gcc.target/powerpc/vsx-vectorize-3.c: Same. * gcc.target/powerpc/vsx-vectorize-4.c: Same. * gcc.target/powerpc/vsx-vectorize-5.c: Same. * gcc.target/powerpc/vsx-vectorize-6.c: Same. * gcc.target/powerpc/vsx-vectorize-7.c: Same. * gcc.target/powerpc/vsx-vectorize-8.c: Same.
2020-06-30testsuite: remove SPE tests.David Edelsohn14-1098/+0
SPE support was removed from the "rs6000" port. This patch removes some left-over SPE-specific testcases from the gcc.target/powerpc directory. gcc/testsuite/ChangeLog 2020-06-30 David Edelsohn <dje.gcc@gmail.com> * gcc.target/powerpc/ppc-spe.c: Delete. * gcc.target/powerpc/ppc-spe64-1.c: Delete. * gcc.target/powerpc/pr60102.c: Delete. * gcc.target/powerpc/pr60158.c: Delete. * gcc.target/powerpc/pr60735.c: Delete. * gcc.target/powerpc/pr78458.c: Delete. * gcc.target/powerpc/pr80343.c: Delete. * gcc.target/powerpc/spe-evmerge.c: Delete. * gcc.target/powerpc/spe-small-data-1.c: Delete. * gcc.target/powerpc/spe-small-data-2.c: Delete. * gcc.target/powerpc/spe-unwind-1.c: Delete. * gcc.target/powerpc/spe-vector-memcpy.c: Delete. * gcc.target/powerpc/spe-vector-memset.c: Delete. * gcc.target/powerpc/spe1.c: Delete.
2020-07-01Daily bump.GCC Administrator9-1/+196
2020-06-30testsuite: change gcc.target/powerpc builtins lp64 to int128 requirement.David Edelsohn4-4/+9
Some of the builtins* tests check for lp64 as a proxy for int128 support. This patch changes the requirements to int128. It also removes some redundant requirements from revb. gcc/testsuite/ChangeLog 2020-06-30 David Edelsohn <dje.gcc@gmail.com> * gcc.target/powerpc/builtins-2-p9-runnable.c: lp64 to int128. * gcc.target/powerpc/builtins-6-p9-runnable.c: Same. * gcc.target/powerpc/builtins-6-runnable.c: Same. * gcc.target/powerpc/builtins-revb-runnable.c: Same.
2020-06-30PR fortran/88379 - ICE with allocatable coarray, class and associateHarald Anlauf2-1/+12
Catch NULL pointer dereference for ASSOCIATE on allocatable coarray variable. gcc/fortran/ PR fortran/88379 * resolve.c (resolve_assoc_var): Avoid NULL pointer dereference.
2020-06-30aarch64: Treat GNU and Advanced SIMD vectors as distinct [PR92789, PR95726]Richard Sandiford3-18/+77
PR95726 is about template look-up for things like: foo<float vecf __attribute__((vector_size(16)))> foo<float32x4_t> The immediate cause of the problem is that the hash function usually returns different hashes for these types, yet the equality function thinks they are equal. This then raises the question of how the types are supposed to be treated. I think the answer is that the GNU vector type should be treated as distinct from float32x4_t, not least because the two types mangle differently. However, each type should implicitly convert to the other. This would mean that, as far as the PR is concerned, the hashing function is right to (sometimes) treat the types differently and the equality function is wrong to treat them as the same. The most obvious way to enforce the type difference is to use a target-specific type attribute. That on its own is enough to fix the PR. The difficulty is deciding whether the knock-on effects are acceptable. One obvious effect is that GCC then rejects: typedef float vecf __attribute__((vector_size(16))); vecf x; float32x4_t &z = x; on the basis that the types are no longer reference-compatible. I think that's again the correct behaviour, and consistent with current Clang. A trickier question is whether: vecf x; float32x4_t y; … c ? x : y … should be valid, and if so, what its type should be [PR92789]. As explained in the comment in the testcase, GCC and Clang both accepted this, but GCC chose the “then” type while Clang chose the “else” type. This can lead to different mangling for (probably artificial) corner cases, as seen for “sel1” and “sel2” in the testcase. Adding the attribute makes GCC reject the conditional expression as ambiguous. I think that too is the correct behaviour, for the reasons described in the testcase. However, it does seem to have the potential to break existing code. It looks like aarch64_comp_type_attributes is missing cases for the SVE attributes, but I'll handle that in a separate patch. 2020-06-30 Richard Sandiford <richard.sandiford@arm.com> gcc/ PR target/92789 PR target/95726 * config/aarch64/aarch64.c (aarch64_attribute_table): Add "Advanced SIMD type". (aarch64_comp_type_attributes): Check that the "Advanced SIMD type" attributes are equal. * config/aarch64/aarch64-builtins.c: Include stringpool.h and attribs.h. (aarch64_mangle_builtin_vector_type): Use the mangling recorded in the "Advanced SIMD type" attribute. (aarch64_init_simd_builtin_types): Add an "Advanced SIMD type" attribute to each Advanced SIMD type, using the mangled type as the attribute's single argument. gcc/testsuite/ PR target/92789 PR target/95726 * g++.target/aarch64/pr95726.C: New test.
2020-06-30rs6000: Fix gcc.target/powerpc testsuite target requirements.David Edelsohn34-37/+62
gcc/testsuite/ChangeLog 2020-06-30 David Edelsohn <dje.gcc@gmail.com> * gcc.target/powerpc/builtins-1-p9-runnable.c: Fix target requirements. * gcc.target/powerpc/builtins-1.c: Same. * gcc.target/powerpc/builtins-2-p9-runnable.c: Same. * gcc.target/powerpc/builtins-2.c: Same. * gcc.target/powerpc/builtins-3-p9-runnable.c: Same. * gcc.target/powerpc/builtins-3-p9.c: Same. * gcc.target/powerpc/builtins-3-runnable-p8.c: Same. * gcc.target/powerpc/builtins-3.c: Same. * gcc.target/powerpc/builtins-4-p9-runnable.c: Same. * gcc.target/powerpc/builtins-4.c: Same. * gcc.target/powerpc/builtins-5-p9-runnable.c: Same. * gcc.target/powerpc/builtins-5.c: Same. * gcc.target/powerpc/builtins-6-p9-runnable.c: Same. * gcc.target/powerpc/builtins-6-runnable.c: Same. * gcc.target/powerpc/builtins-7-p9-runnable.c: Same. * gcc.target/powerpc/builtins-7-runnable.c: Same. * gcc.target/powerpc/builtins-8-p9-runnable.c: Same. * gcc.target/powerpc/builtins-8-runnable.c: Same. * gcc.target/powerpc/cpu-builtin-1.c: Same. * gcc.target/powerpc/float128-fma1.c: Same. * gcc.target/powerpc/float128-hw.c: Same. * gcc.target/powerpc/float128-hw10.c: Same. * gcc.target/powerpc/float128-hw11.c: Same. * gcc.target/powerpc/float128-hw2.c: Same. * gcc.target/powerpc/float128-hw3.c: Same. * gcc.target/powerpc/float128-hw4.c: Same. * gcc.target/powerpc/float128-hw5.c: Same. * gcc.target/powerpc/float128-hw6.c: Same. * gcc.target/powerpc/float128-hw7.c: Same. * gcc.target/powerpc/float128-hw8.c: Same. * gcc.target/powerpc/float128-hw9.c: Same. * gcc.target/powerpc/float128-minmax.c: Same. * gcc.target/powerpc/float128-odd.c: Same. * gcc.target/powerpc/float128-sqrt1.c: Same.
2020-06-30c++: Tweak function cloning namesNathan Sidwell5-14/+22
On the modules branch I need to expose an intermediate step of the function cloning, but before that it'd be nice to rationalize the names somewhat, now that we also use that API for copying the equality operator. Jason's recent patch caused me some pain by altering the same code. I can only blame myself for not pushing some bits sooner. Anyway, this patch makes the newly renamed copy_fndecl_with_name static, and adds a wrapper copy_operator_fn, that takes an operator code. The cdtor cloning functions are renamed to explicitly note they expect cdtors. A followup patch will move some of the logic from copy_fndecl_with_name to build_cdtor_clones. gcc/cp/ * cp-tree.h (copy_fndecl_with_name): Rename to ... (copy_operatorn_fn): ... this. Change arg type. (clone_function_decl): Rename to ... (clone_cdtor): ... this. * class.c (copy_fndecl_with_name): Make static. (copy_operator_fn): New wrapper. (build_clones): Rename to ... (build_cdtor_clones): ... this. (clone_function_decl): Rename to ... (clone_cdtor): ... this. Adjust build_clones calls. (clone_constructors_and_destructors): Adjust clone_function_decl calls. * method.c (implicitly_declare_fn): Adjust copy_fndecl_with_name call. (lazily_declare_fn): Adjust clone_function_decl call. * pt.c (tsubst_function_decl): Likewise. (instantiate_template_1): Likewise. libcc1/ * libcp1plugin.cc (plugin_build_decl): Adjust clone_function_decl call.
2020-06-30testsuite: expect additional warning in analyzer/pr93993.f90David Edelsohn1-1/+1
The recent changes to warnings elicit an additional warning in analyzer/pr93993.f90. This patch updates the testcase to expect the warning. gcc/testsuite/ChangeLog 2020-06-30 David Edelsohn <dje.gcc@gmail.com> * gfortran.dg/analyzer/pr93993.f90: Expect leak tm warning.
2020-06-30[testsuite] Adjust 'scoff' for HSA offloadingThomas Schwinge1-0/+3
Fix-up for commit efc16503ca10bc0e934e0bace5777500e4dc757a "handle dumpbase in offloading, adjust testsuite". gcc/testsuite/ * lib/scanoffload.exp (scoff) <offload_targets>: Skip HSA.
2020-06-30[testsuite] Replace fragile 'scan-assembler' with 'scan-offload-rtl' in ↵Thomas Schwinge5-10/+10
'libgomp.oacc-c-c++-common/pr85381*.c' These test cases use directives similar to: /* { dg-additional-options "-save-temps" } */ /* { dg-final { scan-assembler-times "bar.sync" 2 } } */ This expects to scan the PTX offloading compilation assembler code (not host code!), expecting that nvptx offloading code assembly is produced after the host code, and thus overwrites the latter file. (Yes, that's certainly ugly/fragile...) ..., and this broke with recent commit 1dedc12d186a110854537e1279b4e6c29f2df35a "revamp dump and aux output names" plus fix-up commit commit efc16503ca10bc0e934e0bace5777500e4dc757a "handle dumpbase in offloading, adjust testsuite" (short summary: file names changed), so let's finally make that robust. libgomp/ * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Replace fragile 'scan-assembler' with 'scan-offload-rtl'. * testsuite/libgomp.oacc-c-c++-common/pr85381-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr85381-5.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr85381.c: Likewise.
2020-06-30Mark up unreachable OpenACC 'attach' code pathThomas Schwinge1-3/+4
... introduced in commit 8e7e71ff247fb116dc381c5ef0c09acc0d2b374f (r279625) "OpenACC 2.6 deep copy: libgomp parts". libgomp/ * target.c (gomp_map_vars_existing): Assert 'kind != GOMP_MAP_ATTACH'. (gomp_map_vars_internal): Clean up.
2020-06-30gcc-changelog: support older GitPython releases.Martin Liska1-1/+5
contrib/ChangeLog: * gcc-changelog/git_repository.py: Support older releases of GitPython when renamed_file was named renamed.
2020-06-30coroutines: Fix a diagnostic trailing space warning.Iain Sandoe1-1/+1
A recently add diagnostic has a trailing space. Fixed thus. gcc/cp/ChangeLog: * coroutines.cc (morph_fn_to_coro): Remove trailing space in a diagnostic.
2020-06-30arm: Warn if IRQ handler is not compiled with -mgeneral-regs-only [PR ↵Christophe Lyon11-3/+141
target/94743] The interrupt attribute does not guarantee that the FP registers are saved, which can result in problems difficult to debug. Saving the FP registers and status registers can be a large penalty, so it's probably not desirable to do that all the time. If the handler calls other functions, we'd likely need to save all of them, for lack of knowledge of which registers they actually clobber. This is even more obscure for the end-user when the compiler inserts calls to helper functions such as memcpy (some multilibs do use FP registers to speed it up). In the PR, we discussed adding routines in libgcc to save the FP context and saving only locally-clobbered FP registers, but this seems to be too much work for the purpose, given that in general such handlers try to avoid this kind of penalty. I suspect we would also want new attributes to instruct the compiler that saving the FP context is not needed. In the mean time, emit a warning to suggest re-compiling with -mgeneral-regs-only. Note that this can lead to errors if the code uses floating-point and -mfloat-abi=hard, eg: argument of type 'double' not permitted with -mgeneral-regs-only This can be troublesome for the user, but at least this would make him aware of the latent issue. The patch adds several testcases: - pr94734-1-hard.c checks that a warning is emitted when using -mfloat-abi=hard. Function IRQ_HDLR_Test can make implicit calls to runtime floating-point routines (or direct use of FP instructions), IRQ_HDLR_Test2 doesn't. We emit a warning in both cases, though. - pr94734-1-softfp.c: same as above wih -mfloat-abi=softfp. - pr94734-1-soft.c checks that no warning is emitted when using -mfloat-abi=soft when the same code as above. - pr94734-2.c checks that no warning is emitted when using -mgeneral-regs-only. - pr94734-3.c checks that no warning is emitted when using -mgeneral-regs-only even using float-point data. 2020-06-30 Christophe Lyon <christophe.lyon@linaro.org> PR target/94743 gcc/ * config/arm/arm.c (arm_handle_isr_attribute): Warn if -mgeneral-regs-only is not used. gcc/testsuite/ * gcc.misc-tests/arm-isr.c: Add -mgeneral-regs-only. * gcc.target/arm/empty_fiq_handler.c: Add -mgeneral-regs-only. * gcc.target/arm/interrupt-1.c: Add -mgeneral-regs-only. * gcc.target/arm/interrupt-2.c: Add -mgeneral-regs-only. * gcc.target/arm/pr70830.c: Add -mgeneral-regs-only. * gcc.target/arm/pr94743-1-hard.c: New test. * gcc.target/arm/pr94743-1-soft.c: New test. * gcc.target/arm/pr94743-1-softfp.c: New test. * gcc.target/arm/pr94743-2.c: New test. * gcc.target/arm/pr94743-3.c: New test.
2020-06-30tree-optimization/95855 - Add checks to avoid spoiling if-conversion ifYang Yang2-0/+58
Add some checks in pass_splits_paths, so that pass_split_paths can recognize the missed if-conversion opportunity and do not duplicate the corresponding block. 2020-06-30 Yang Yang <yangyang305@huawei.com> gcc/ChangeLog: PR tree-optimization/95855 * gimple-ssa-split-paths.c (is_feasible_trace): Add extra checks to recognize a missed if-conversion opportunity when judging whether to duplicate a block. gcc/testsuite/ChangeLog PR tree-optimization/95855 * gcc.dg/tree-ssa/split-path-12.c: New testcase.
2020-06-30testsuite: fix constexpr-is_literal.C deprecated c++17 and above.David Edelsohn1-1/+1
std::is_literal_type is deprecated in C++17 and above. This was introduced in c++11, but the testsuite list of standards now only includes c++98 and c++14. This patch limits the test to c++14_only to prevent deprecation warnings. gcc/testsuite/ChangeLog 2020-06-30 David Edelsohn <dje.gcc@gmail.com> * g++.dg/cpp0x/constexpr-is_literal.C: Limit test to -std=c++14.
2020-06-30Use CHARACTER(kind) string for calculating the type hash.Thomas Koenig4-3/+52
This regression came about because of a change in the way types are displayed in error messages. The character representation is also used to calculate the hashes for our types, so this patch restores the old behavior if we are indeed calculating a hash. The test case also checks for the specific hash value because changing that would be an ABI change, which we should not be doing unintentionally. gcc/fortran/ChangeLog: 2020-06-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/95355 * gfortran.h (gfc_typename): Add optional argument for_hash. * misc.c (gfc_typename): When for_hash is true, just retur CHARACTER(kind). * class.c (gfc_intrinsic_hash_value): Call gfc_typename with for_hash = true.
2020-06-30c-family: Avoid ICEs on calls to internal functions [PR95963]Jakub Jelinek2-1/+12
The following testcase ICEs since recent Martin's -Wnonnull changes, we see a CALL_EXPR and ICE because CALL_EXPR_FN is NULL, which is valid for internal function calls. Internal function calls don't have a function type, and will never have format_arg attribute on them nor will serve as the i18n routines -Wformat cares about. 2020-06-30 Jakub Jelinek <jakub@redhat.com> PR c++/95963 * c-common.c (check_function_arguments_recurse): Don't crash on calls to internal functions. * g++.dg/cpp1z/launder9.C: New test.
2020-06-30Daily bump.GCC Administrator8-1/+211
2020-06-30gcc-changelog: support 'This revert commit' prefix.Martin Liska2-3/+21
contrib/ChangeLog: * gcc-changelog/git_check_commit.py: Print revision of original_info. * gcc-changelog/git_commit.py: Support Revert commits.
2020-06-30gcc-changelog: come up with GitInfo wrapper.Martin Liska4-52/+58
contrib/ChangeLog: * gcc-changelog/git_check_commit.py: Use GitInfo * gcc-changelog/git_commit.py: Add GitInfo class. * gcc-changelog/git_email.py: Use GitInfo class. * gcc-changelog/git_repository.py: Likewise.
2020-06-30coroutines: Collect the function body rewrite code.Iain Sandoe1-329/+213
The standard describes a rewrite of the body of the user-authored function (which wraps it in a try-catch block and provides the initial and final suspend expressions). The exact arrangement of this was still in flux right up until the DIS and as a consequence was a bit of a moving target. The net result was a fragmented implementation of the parts of the rewrite which is now impeding progress in fixing other issues. This patch collates the rewrite action into a single function and carries this out earlier. gcc/cp/ChangeLog: * coroutines.cc (expand_one_await_expression): Remove code dealing with initial suspend. (build_actor_fn): Remove code special-casing initial and final suspend. Handle the final suspend and marking of the coroutine as done. (coro_rewrite_function_body): New. (bind_expr_find_in_subtree): Remove. (coro_body_contains_bind_expr_p): Remove. (morph_fn_to_coro): Split the rewrite of the original function into coro_rewrite_function_body and call it.
2020-06-29Update gcc sv.po.Joseph Myers1-358/+238
* sv.po: Update.
2020-06-30Revert "Add a __nonnnull__ attribute to std::string's _CharT* constructor"Ville Voutilainen3-59/+0
This reverts commit b26fd416fb0a734d3f3e56629b6dff2e3c25dd40.
2020-06-29compiler: remove some erroneous code that was never runIan Lance Taylor2-10/+6
The code accidentally called Type::type_descriptor rather than the do_type_descriptor method. Calling Type::type_descriptor with a second argument of NULL would always crash. Since that never happened, it revealed that this code was never actually executed. Fixes PR go/95970 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/240477
2020-06-29PR fortran/95978 - ICE in gfc_match_data, at fortran/decl.c:731Harald Anlauf2-1/+11
Catch NULL pointer dereference on invalid DATA statement. gcc/fortran/ PR fortran/95978 * decl.c (gfc_match_data): Avoid NULL pointer dereference.
2020-06-29Do not generate recursion check for compiler-generated procedures.Thomas Koenig2-1/+26
This one-line fix removes a check for recursion for procedures which are compiler-generated, such as finalizers or deallocation. These need to be recursive, even if the user code should not be. gcc/fortran/ChangeLog: PR fortran/95743 * trans-decl.c (gfc_generate_function_code): Do not generate recursion check for compiler-generated procedures.
2020-06-29rs6000: Documentation updates for "future" renameSegher Boessenkool1-33/+29
2020-06-29 Segher Boessenkool <segher@kernel.crashing.org> * doc/extend.texi: Change references to "future architecture" to "ISA 3.1", "-mcpu=future" to "-mcpu=power10", and remove vaguer references to "future" (because the future is now).