- 03 Jul, 2020 3 commits
-
-
[OpenACC] Remove (unused) 'GOMP_MAP_ALWAYS_FROM' handling from 'libgomp/oacc-mem.c:goacc_exit_data_internal' This had gotten added in commit 378da98f (r279621) "OpenACC reference count overhaul", but it doesn't have any use in OpenACC. libgomp/ * oacc-mem.c (goacc_exit_data_internal): Remove 'GOMP_MAP_ALWAYS_FROM' handling. (cherry picked from commit 995aba5867b1c64b2b56a200ef16b135effe85f7)
Thomas Schwinge committed -
The mechanism generating debug info for removed parameters did not adjust index of the argument in the call statement to take into account extra arguments IPA-SRA might have produced when splitting a strucutre. This patch addresses that omission and stops gdb from showing incorrect value for the removed parameter and says "value optimized out" instead. The guality testcase will end up as UNSUPPORTED in the results which is how Richi told me on IRC we deal with this. It is possible to generate debug info to actually show the value of the removed parameter but so far my approaches to do just that seem toocontroversial (https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546705.html), so before I come up with something better I'd like to push this to master and the gcc-10 branch in time for the GCC 10.2 release. gcc/ChangeLog: 2020-07-01 Martin Jambor <mjambor@suse.cz> PR debug/95343 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Adjust argument index if necessary. gcc/testsuite/ChangeLog: 2020-07-01 Martin Jambor <mjambor@suse.cz> PR debug/95343 * gcc.dg/guality/pr95343.c: New test. (cherry picked from commit 053c88093a45f175f446eda009f3312e4e508514)
Martin Jambor committed -
GCC Administrator committed
-
- 02 Jul, 2020 9 commits
-
-
2020-07-02 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define _ARCH_PWR10 when appropriate.
Segher Boessenkool committed -
PR libstdc++/91807 * include/std/variant (_Copy_assign_base::operator=(const _Copy_assign_base&): Do the move-assignment from a temporary so that the temporary is constructed with an explicit index. * testsuite/20_util/variant/91807.cc: New. (cherry picked from commit dbca7a69f276e4829354f87f2747ebff36f6090e)
Ville Voutilainen committed -
Catch NULL pointer dereference for ASSOCIATE on allocatable coarray variable. gcc/fortran/ PR fortran/88379 * resolve.c (resolve_assoc_var): Avoid NULL pointer dereference. (cherry picked from commit 267f84c6035c9380c8d1e9cb83ffe299c23e3a85)
Harald Anlauf committed -
These tests fail with AIX double double. Use different floating point values that behave less surprisingly. libstdc++-v3/ChangeLog: PR libstdc++/91153 PR target/93224 * testsuite/29_atomics/atomic_float/1.cc: Use different values for tests. * testsuite/29_atomics/atomic_ref/float.cc: Likewise. (cherry picked from commit c6f431bba531bac3212b66069cf0f9718edf0132)
Jonathan Wakely committed -
Add support for __builtin_cpu_is ("power10"). Also add documentation for the recently added "arch_3_1" and "mma" __builtin_cpu_supports arguments. 2020-06-25 Peter Bergner <bergner@linux.ibm.com> gcc/ * config/rs6000/rs6000-call.c (cpu_is_info) <power10>: New. * doc/extend.texi (PowerPC Built-in Functions): Document power10, arch_3_1 and mma. gcc/testsuite/ * gcc.target/powerpc/cpu-builtin-1.c: Add tests for power10, arch_3_1 and mma. (cherry picked from commit 67161d24f45601e43abea98f2c3d7d7a462b6eab)
Peter Bergner committed -
This patch adds support for the two new HWCAP2 fields used by the __builtin_cpu_supports function. It adds support in the target_clones attribute for -mcpu=power10. The two new __builtin_cpu_supports tests are: __builtin_cpu_supports ("arch_3_1") __builtin_cpu_supports ("mma") The bits used are the bits that the Linux kernel engineers will be using for these new features. 2020-06-05 Michael Meissner <meissner@linux.ibm.com> gcc/ * config/rs6000/ppc-auxv.h (PPC_PLATFORM_POWER10): Allocate 'power10' PowerPC platform. (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ARCH 3.1. (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA. * config/rs6000/rs6000-call.c (cpu_supports_info): Add ARCH 3.1 and MMA HWCAP2 bits. gcc/testsuite/ * gcc.target/powerpc/clone3.c: New test for using 'power10' with the target_clones attribute. (cherry picked from commit 2753f2f8b4a4534ab364595ba4b8a913cc7254a7) (cherry picked from commit 7ba33e898fa4a097c0f2b4d9cae35041a5933f9c)
Michael Meissner committed -
2020-06-09 Michael Meissner <meissner@linux.ibm.com> gcc/testsuite/ * lib/target-supports.exp (check_effective_target_powerpc_pcrel): New. (check_effective_target_powerpc_prefixed_addr): New. (cherry picked from commit 6e52b2297ecce1243c00d76b3f079b71016b8ffa)
Michael Meissner committed -
contrib/ChangeLog: * gcc-changelog/git_check_commit.py: New file. * gcc-changelog/git_commit.py: New file. * gcc-changelog/git_email.py: New file. * gcc-changelog/git_repository.py: New file. * gcc-changelog/git_update_version.py: New file. * gcc-changelog/test_email.py: New file. * gcc-changelog/test_patches.txt: New file.
Martin Liska committed -
GCC Administrator committed
-
- 01 Jul, 2020 7 commits
-
-
This squashes two commits, r11-674 and r11-1401. PR libstdc++/95282 * include/bits/atomic_base.h (__atomic_impl::load): Add const-qualifier to parameter so that _Tp is deduced as the non-const type, and use _Val to get the unqualified type. (__atomic_impl::exchange): Use the _Val alias to remove volatile from the reinterpret_cast result type. * testsuite/29_atomics/atomic_float/95282.cc: New test. (cherry picked from commit e40b11a91cb345db1324c3cb8f75b01e28056693)
Jonathan Wakely committed -
These functions can't be noexcept because the iterators stored in the sub_match objects can throw on any operation. libstdc++-v3/ChangeLog: PR libstdc++/94627 * include/bits/regex.h (operator==, operator!=): Remove noexcept equality comparisons for match_results. * testsuite/28_regex/match_results/94627.cc: New test. (cherry picked from commit a1a0dc4548979f8a340a7ea71624a52a20e1e0b3)
Jonathan Wakely committed -
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. (cherry picked from commit 9252a208f485eed2757d601657facfa0aee6cd21)
Iain Sandoe committed -
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. (cherry picked from commit eef63aacb255befb4e483cf680a3d0dcb2d8794e)
Iain Sandoe committed -
In GCC testsuite the MVE scalar shift execution tests (mve_scalar_shifts[1-4].c) are failings because of executing them on target hardware which doesn't support MVE instructions. This patch restricts those tests to execute only on target hardware that support MVE instructions. 2020-06-22 Srinath Parvathaneni <srinath.parvathaneni@arm.com> gcc/ * doc/sourcebuild.texi (arm_v8_1m_mve_fp_ok): Add item. (arm_mve_hw): Likewise. gcc/testsuite/ * gcc.target/arm/mve/intrinsics/mve_scalar_shifts1.c: Modify. * gcc.target/arm/mve/intrinsics/mve_scalar_shifts2.c: Likewise. * gcc.target/arm/mve/intrinsics/mve_scalar_shifts3.c: Likewise. * gcc.target/arm/mve/intrinsics/mve_scalar_shifts4.c: Likewise. * lib/target-supports.exp (check_effective_target_arm_mve_hw): Define. (cherry picked from commit 99abb146fd0923ebda2c7e7681adb18e6798a90c)
Srinath Parvathaneni committed -
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. (cherry picked from commit 624e60f080989fa57756575a0bb47a97748b52b8)
Mark Eggleston committed -
GCC Administrator committed
-
- 30 Jun, 2020 12 commits
-
-
== The actual changelog had == Backport from trunk == 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org> == but the commit scripts refuse that 2020-06-30 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (isa): Rename "fut" to "p10".
Segher Boessenkool committed -
== The actual changelog had == Backport from trunk == 2020-06-22 Segher Boessenkool <segher@kernel.crashing.org> == but the commit scripts refuse that 2020-06-30 Segher Boessenkool <segher@kernel.crashing.org> gcc/testsuite/ChangeLog: * gcc.target/powerpc/cpu-future.c: Something was done here. * gcc.target/powerpc/localentry-1.c: Something was done here. * gcc.target/powerpc/localentry-detect-1.c: Something was done here. * gcc.target/powerpc/mma-builtin-1.c: Something was done here. * gcc.target/powerpc/mma-builtin-2.c: Something was done here. * gcc.target/powerpc/mma-builtin-3.c: Something was done here. * gcc.target/powerpc/mma-builtin-4.c: Something was done here. * gcc.target/powerpc/mma-builtin-5.c: Something was done here. * gcc.target/powerpc/mma-builtin-6.c: Something was done here. * gcc.target/powerpc/notoc-direct-1.c: Something was done here. * gcc.target/powerpc/pcrel-sibcall-1.c: Something was done here. * gcc.target/powerpc/pr93122.c: Something was done here. * lib/target-supports.exp: Stuff.
Segher Boessenkool committed -
== The actual changelog had == Backport from trunk == 2020-06-22 Segher Boessenkool <segher@kernel.crashing.org> == but the commit scripts refuse that 2020-06-30 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/driver-rs6000.c (asm_names): Use -mpwr10 for power10 on AIX, and -mpower10 elsewhere. * config/rs6000/future.md: Delete. * config/rs6000/linux64.h: Update comments. Use TARGET_POWER10, not TARGET_FUTURE. * config/rs6000/power10.md: New file. * config/rs6000/rs6000-builtin.def: Update comments. * config/rs6000/rs6000-call.c: Use P10_BUILTIN_*, not FUTURE_BUILTIN_*. Update compiler messages. * config/rs6000/rs6000-cpus.def: Update comments. Use ISA_3_1_*, not ISA_FUTURE_*. Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. * config/rs6000/rs6000-opts.h: Use PROCESSOR_POWER10, not PROCESSOR_FUTURE. * config/rs6000/rs6000-string.c: Ditto. * config/rs6000/rs6000-tables.opt (rs6000_cpu_opt_value): Use "power10" instead of "future", reorder it to right after "power9". * config/rs6000/rs6000.c: Update comments. Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. Use TARGET_POWER10, not TARGET_FUTURE. Use RS6000_BTM_P10, not RS6000_BTM_FUTURE. Update compiler messages. Use PROCESSOR_POWER10, not PROCESSOR_FUTURE. Use ISA_3_1_MASKS_SERVER, not ISA_FUTURE_MASKS_SERVER. (rs6000_opt_masks): Use "power10" instead of "future". (rs6000_builtin_mask_names): Ditto. (rs6000_disable_incompatible_switches): Ditto. * config/rs6000/rs6000.h: Use -mpower10, not -mfuture. Use -mcpu=power10, not -mcpu=future. Use MASK_POWER10, not MASK_FUTURE. Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. Use RS6000_BTM_P10, not RS6000_BTM_FUTURE. * config/rs6000/rs6000.md: Use "power10", not "future". Use TARGET_POWER10, not TARGET_FUTURE. Include "power10.md", not "future.md". * config/rs6000/rs6000.opt (mfuture): Delete. (mpower10): New. * config/rs6000/t-rs6000: Use "power10.md", not "future.md". * config/rs6000/vsx.md: Use TARGET_POWER10, not TARGET_FUTURE.
Segher Boessenkool committed -
Catch NULL pointer dereference on invalid DATA statement. gcc/fortran/ PR fortran/95978 * decl.c (gfc_match_data): Avoid NULL pointer dereference. (cherry picked from commit 583812c2e2f3593823622b0a5821d957c832dbd0)
Harald Anlauf committed -
The run-time checking code did not properly convert the kind of the argument to SYNC IMAGES, leading to an error in verify_gimple. Fix that. gcc/fortran/ PR fortran/71706 * trans-stmt.c (gfc_trans_sync): Do proper kind conversion in bounds-checking code. (cherry picked from commit e6cc67f6616c96f3e18a434e0c74ba2f3818cb6d)
Harald Anlauf committed -
... introduced in commit 8e7e71ff (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. (cherry picked from commit aff43ac0aed5185884724adbdfd4dbbabd87637c)
Thomas Schwinge committed -
This fixes a bug in the arm backend where GCC generates invalid LDRD instructions. The LDRD instruction requires the first transfer register to be even, but GCC attempts to use odd registers here. For example, with the following C code: struct c { double a; } __attribute((aligned)) __attribute((packed)); struct c d; struct c f(struct c); void e() { f(d); } The struct d is passed in registers r1 and r2 to the function f, and GCC attempted to do this with a LDRD instruction when compiling with -march=armv7-a on a soft float toolchain. The fix is analogous to the corresponding one for STRD in the same function: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=52057dc4ac5295caebf83147f688d769c93cbc8d gcc/: * config/arm/arm.c (output_move_double): Fix codegen when loading into a register pair with an odd base register. gcc/testsuite/: * gcc.c-torture/compile/packed-aligned-1.c: New test. * gcc.c-torture/execute/packed-aligned.c: New test. (cherry picked from commit 8b8f3117263ca79b3febadadb07732588d99d5f6)
Alex Coplan committed -
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. (cherry picked from commit 95cdcf701dad826f225d6413b59650f181954399)
Thomas Koenig committed -
We need to skip past namespace decls when scanning the bind expression var lists checking for local vars. gcc/cp/ChangeLog: PR c++/95711 * coroutines.cc (register_local_var_uses): Skip past namespace decls. gcc/testsuite/ChangeLog: PR c++/95711 * g++.dg/coroutines/pr95711.C: New test. (cherry picked from commit 06ed4aae1c2fa84b7050a286d866db4a6def3c36)
Iain Sandoe committed -
Move deciding on initializers for awaitables to the build of the co_await, this allows us to analyse cases that do not need a temporary at that point. As the PR shows, the late analysis meant that we were not checking properly for the case that an awaiter is a sub-object of an existing variable outside the current function scope (and therefore does not need to be duplicated in the frame). gcc/cp/ChangeLog: PR c++/95736 * coroutines.cc (get_awaitable_var): New helper. (build_co_await): Check more carefully before copying an awaitable. (expand_one_await_expression): No initializer is required when the awaitable is not a temp. (register_awaits): Remove handling that is now completed when the await expression is built. gcc/testsuite/ChangeLog: PR c++/95736 * g++.dg/coroutines/pr95736.C: New test. (cherry picked from commit daaed0199ee57013ae011421a7e90b7bdd295373)
Iain Sandoe committed -
If the user provides operator new and that is noexcept, this implies that it can fail with a null return. At that point, we expect to be able to call get_return_object_on_allocation_failure(). This diagnoses the case where such an operator new has been provided, but the g-r-o-o-a-f is either missing or unusable. gcc/cp/ChangeLog: * coroutines.cc (morph_fn_to_coro): Diagnose unavailable get_return_object_on_allocation_failure. gcc/testsuite/ChangeLog: * g++.dg/coroutines/coro-bad-grooaf-01-grooaf-expected.C: New test. (cherry picked from commit 9c5ca11a33fa91345fe813d449ddc4a821fc72d5)
Iain Sandoe committed -
GCC Administrator committed
-
- 29 Jun, 2020 9 commits
-
-
* sv.po: Update.
Joseph Myers committed -
Do not dereference NULL pointer when querying array shape of possibly improperly delared variable. gcc/fortran/ PR fortran/95340 * match.c (gfc_match_select_rank): Do not dereference NULL pointer. (cherry picked from commit b62cac6d92ff251213753475b69ec0b269cb7fae)
Harald Anlauf committed -
The fix for PR39695 did not properly distinguish between procedure names and other symbols names in errors emitted for invalid code. Fix that. gcc/fortran/ PR fortran/95880 * symbol.c (gfc_add_type): If sym->ns->proc_name is set, use it, otherwise fall back to sym->name. (cherry picked from commit f3a8f66a83f8c94f6fbb0233cefba8032f2e4876)
Harald Anlauf committed -
The PR points out that the standard does not restrict promise expressions to methods, but the current implementation does. The patch factors out the building of a general promise expression, and then uses it in a fairly mechanical replacement of each case that we need such an expressions. This extends the handling for p.xxxxxx() expressions to cover the cases where the promise member is some form callable. Tests are added for each of the promise expressions. It's somewhat tortuous to find good uses for this for the get-return-object and get-return-object-on-allocation-failure cases, but they are included anyway. Backported from e74c76073092f4715007584edb1fe6b7a17274db and 31419a80b6bf84b1bf3bcb2489b2e660563f0dfe gcc/cp/ChangeLog: PR c++/95519 * coroutines.cc (struct coroutine_info):Add a field to hold computed p.return_void expressions. (coro_build_promise_expression): New. (get_coroutine_return_void_expr): New. (finish_co_yield_expr): Build the promise expression using coro_build_promise_expression. (finish_co_return_stmt): Likewise. (build_init_or_final_await): Likewise. (morph_fn_to_coro): Likewise, for several cases. gcc/testsuite/ChangeLog: PR c++/95519 * g++.dg/coroutines/torture/pr95519-00-return_void.C: New test. * g++.dg/coroutines/torture/pr95519-01-initial-suspend.C: New test. * g++.dg/coroutines/torture/pr95519-02-final_suspend.C: New test. * g++.dg/coroutines/torture/pr95519-03-return-value.C: New test. * g++.dg/coroutines/torture/pr95519-04-yield-value.C: New test. * g++.dg/coroutines/torture/pr95519-05-gro.C: New test. * g++.dg/coroutines/torture/pr95519-06-grooaf.C: New test. * g++.dg/coroutines/torture/pr95519-07-unhandled-exception.C: New test.
Iain Sandoe committed -
If we see a get_return_object_on_allocation_failure in the promise, we expect to be able to use it. If this isn't possible (because of some error in the declaration) then we need to handle the erroneous return to allow following code to complete. gcc/cp/ChangeLog: * coroutines.cc (morph_fn_to_coro): Handle error returns in building g-r-o-o-a-f expressions. gcc/testsuite/ChangeLog: * g++.dg/coroutines/coro1-allocators.h (BAD_GROOAF_STATIC): New. * g++.dg/coroutines/coro-bad-grooaf-00-static.C: New test. (cherry picked from commit e195c8045a1f3604f0f6b339e9ff731ebd9dcb0e)
Iain Sandoe committed -
PR libstdc++/95915 * include/std/variant (_Uninitialized): Adjust the condition and the comment. * testsuite/20_util/variant/95915.cc: New. * testsuite/20_util/variant/compile.cc: Add new test. (cherry picked from commit 24b54628cfa95194a8de4071c28cb56e6e81c08e)
Ville Voutilainen committed -
2020-06-09 Jakub Jelinek <jakub@redhat.com> * g++.dg/torture/pr95493.C: Add -Wno-psabi -w to dg-additional-options. (cherry picked from commit 9a39b91d934e7acd8f3a9767b6d5febe90168d0d)
Jakub Jelinek committed -
For lp64 targets and int off ... ptr[off + 1] is lowered in pointer_sum to *(ptr + ((sizetype) off + (sizetype) 1)). That is fine when signed integer wrapping is undefined (and is not done already if off has unsigned type), but changes behavior for -fwrapv, where overflow is well defined. Runtime test could be: int main () { char *p = __builtin_malloc (0x100000000UL); if (!p) return 0; char *q = p + 0x80000000UL; int o = __INT_MAX__; q[o + 1] = 1; if (q[-__INT_MAX__ - 1] != 1) __builtin_abort (); return 0; } with -fwrapv or so, not included in the testsuite because it requires 4GB allocation (with some other test it would be enough to have something slightly above 2GB, but still...). 2020-06-27 Jakub Jelinek <jakub@redhat.com> PR middle-end/95903 gcc/c-family/ * c-common.c (pointer_int_sum): Use TYPE_OVERFLOW_UNDEFINED instead of !TYPE_UNSIGNED check to see if we can apply distributive law and handle smaller precision intop operands separately. gcc/testsuite/ * c-c++-common/pr95903.c: New test. (cherry picked from commit 37995960984ea2222346dd9d168d332cd6f7adf0)
Jakub Jelinek committed -
We folded A <= 0 ? A : -A into -ABS (A), which is for signed integral types incorrect - can invoke on INT_MIN UB twice, once on ABS and once on its negation. The following patch fixes it by instead folding it to (type)-ABSU (A). 2020-06-24 Jakub Jelinek <jakub@redhat.com> PR middle-end/95810 * fold-const.c (fold_cond_expr_with_comparison): Optimize A <= 0 ? A : -A into (type)-absu(A) rather than -abs(A). * gcc.dg/ubsan/pr95810.c: New test. (cherry picked from commit 01e10b0ee77e82cb331414c569e02dc7a2c4999e)
Jakub Jelinek committed
-