[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 --- Comment #9 from John David Anglin --- Author: danglin Date: Sat Feb 10 20:04:59 2018 New Revision: 257553 URL: https://gcc.gnu.org/viewcvs?rev=257553&root=gcc&view=rev Log: Backport from mainline 2018-02-01 Aldy Hernandez PR target/84089 * config/pa/predicates.md (base14_operand): Handle VOIDmode. Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/pa/predicates.md
[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 --- Comment #8 from John David Anglin --- Author: danglin Date: Sat Feb 10 19:55:06 2018 New Revision: 257552 URL: https://gcc.gnu.org/viewcvs?rev=257552&root=gcc&view=rev Log: Backport from mainline 2018-02-01 Aldy Hernandez PR target/84089 * config/pa/predicates.md (base14_operand): Handle VOIDmode. Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/config/pa/predicates.md
[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 Aldy Hernandez changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #7 from Aldy Hernandez --- Fixed in trunk.
[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 --- Comment #6 from Aldy Hernandez --- Author: aldyh Date: Thu Feb 1 17:12:28 2018 New Revision: 257304 URL: https://gcc.gnu.org/viewcvs?rev=257304&root=gcc&view=rev Log: PR target/84089 * config/pa/predicates.md (base14_operand): Handle E_VOIDmode. Modified: trunk/gcc/ChangeLog trunk/gcc/config/pa/predicates.md
[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 --- Comment #5 from dave.anglin at bell dot net --- On 2018-01-31 4:57 AM, aldyh at gcc dot gnu.org wrote: > I know nothing about the PA back-end, or whether E_VOIDmode is valid for > base14_operand, however... > > Before r196122, a VOIDmode would return the default value of false in > base14_operand, but when S?mode and D?mode's were collapsed with the > aforementioned patch, we started handling VOIDmode. This can trigger a > division by 0. The untested patch below fixes this problem: > > diff --git a/gcc/config/pa/predicates.md b/gcc/config/pa/predicates.md > index 4600f988c87..f7961cc7f88 100644 > --- a/gcc/config/pa/predicates.md > +++ b/gcc/config/pa/predicates.md > @@ -275,6 +275,7 @@ > case E_BLKmode: > case E_QImode: > case E_HImode: > +case E_VOIDmode: > return true; > > Again, I have no knowledge of the PA port, and I don't know if > pa_legitimate_address_p() is supposed to even handle E_VOIDmode. Thanks very much for debugging this. I believe base14_operand should return false for VOIDmode as we can't do a check on the offset value in this case. The general intent of the check is to ensure that a base14 offset is consistent with those allowed by the PA instruction set. Arbitrary offsets are only allowed for byte and half word accesses. For integer word, double word and floating point accesses both the address register and the offset must be appropriately aligned on PA. Thus, it is safest to return false for VOIDmode in this check. A patch to add a E_VOIDmode case returning false in base14_operand is okay. Dave
[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 Aldy Hernandez changed: What|Removed |Added CC||law at gcc dot gnu.org --- Comment #4 from Aldy Hernandez --- I know nothing about the PA back-end, or whether E_VOIDmode is valid for base14_operand, however... Before r196122, a VOIDmode would return the default value of false in base14_operand, but when S?mode and D?mode's were collapsed with the aforementioned patch, we started handling VOIDmode. This can trigger a division by 0. The untested patch below fixes this problem: diff --git a/gcc/config/pa/predicates.md b/gcc/config/pa/predicates.md index 4600f988c87..f7961cc7f88 100644 --- a/gcc/config/pa/predicates.md +++ b/gcc/config/pa/predicates.md @@ -275,6 +275,7 @@ case E_BLKmode: case E_QImode: case E_HImode: +case E_VOIDmode: return true; Again, I have no knowledge of the PA port, and I don't know if pa_legitimate_address_p() is supposed to even handle E_VOIDmode. Perhaps a PA maintainer can comment.
[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 Aldy Hernandez changed: What|Removed |Added Status|WAITING |NEW --- Comment #3 from Aldy Hernandez --- Confirmed on cross build with a simple ./cc1plus -O0. Looks like a PA backend problem: switch (mode) { case E_BLKmode: case E_QImode: case E_HImode: return true; default: =>return (INTVAL (op) % GET_MODE_SIZE (mode)) == 0; } (gdb) print mode $7 = E_VOIDmode (gdb) print mode $8 = E_VOIDmode (gdb) print mode_size[mode].coeffs[0] $9 = 0
[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 --- Comment #2 from dave.anglin at bell dot net --- Attached.
[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 Aldy Hernandez changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2018-01-30 CC||aldyh at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Aldy Hernandez --- Would you mind attaching a preprocessed testcase so this can be reproduced with a cross compiler? The failing testcase includes , and I don't have hpux headers :).
[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089 Richard Biener changed: What|Removed |Added Target Milestone|--- |8.0