[Bug middle-end/84089] [8 Regression] FAIL: g++.dg/cpp1y/lambda-generic-x.C -std=gnu++14 (internal compiler error)

2018-02-10 Thread danglin at gcc dot gnu.org
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=gcc=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)

2018-02-10 Thread danglin at gcc dot gnu.org
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=gcc=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)

2018-02-01 Thread aldyh at gcc dot gnu.org
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)

2018-02-01 Thread aldyh at gcc dot gnu.org
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=gcc=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)

2018-01-31 Thread dave.anglin at bell dot net
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)

2018-01-31 Thread aldyh at gcc dot gnu.org
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)

2018-01-30 Thread aldyh at gcc dot gnu.org
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)

2018-01-29 Thread dave.anglin at bell dot net
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)

2018-01-29 Thread aldyh at gcc dot gnu.org
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)

2018-01-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84089

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |8.0