[Bug c++/71393] [6/7 Regression] Compilation hang

2016-06-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71393

Jakub Jelinek  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #8 from Jakub Jelinek  ---
Should be fixed for 6.2+.

[Bug c++/71393] [6/7 Regression] Compilation hang

2016-06-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71393

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Mon Jun  6 20:11:54 2016
New Revision: 237152

URL: https://gcc.gnu.org/viewcvs?rev=237152=gcc=rev
Log:
PR c++/70847
PR c++/71330
PR c++/71393
* cp-gimplify.c (cp_fold_r): Set *walk_subtrees = 0 and return NULL
right after cp_fold call if cp_fold has returned the same stmt
already in some earlier cp_fold_r call.
(cp_fold_function): Add pset automatic variable, pass its address
to cp_walk_tree.

* g++.dg/opt/pr70847.C: New test.
* g++.dg/ubsan/pr70847.C: New test.
* g++.dg/ubsan/pr71393.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/opt/pr70847.C
branches/gcc-6-branch/gcc/testsuite/g++.dg/ubsan/pr70847.C
branches/gcc-6-branch/gcc/testsuite/g++.dg/ubsan/pr71393.C
Modified:
branches/gcc-6-branch/gcc/cp/ChangeLog
branches/gcc-6-branch/gcc/cp/cp-gimplify.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/71393] [6/7 Regression] Compilation hang

2016-06-06 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71393

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Mon Jun  6 19:48:22 2016
New Revision: 237151

URL: https://gcc.gnu.org/viewcvs?rev=237151=gcc=rev
Log:
PR c++/70847
PR c++/71330
PR c++/71393
* cp-gimplify.c (cp_fold_r): Set *walk_subtrees = 0 and return NULL
right after cp_fold call if cp_fold has returned the same stmt
already in some earlier cp_fold_r call.
(cp_fold_function): Add pset automatic variable, pass its address
to cp_walk_tree.

* g++.dg/opt/pr70847.C: New test.
* g++.dg/ubsan/pr70847.C: New test.
* g++.dg/ubsan/pr71393.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/opt/pr70847.C
trunk/gcc/testsuite/g++.dg/ubsan/pr70847.C
trunk/gcc/testsuite/g++.dg/ubsan/pr71393.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-gimplify.c
trunk/gcc/testsuite/ChangeLog

[Bug c++/71393] [6/7 Regression] Compilation hang

2016-06-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71393

--- Comment #5 from Jakub Jelinek  ---
Untested fix for this PR attached to PR70847.

[Bug c++/71393] [6/7 Regression] Compilation hang

2016-06-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71393

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-06-03
 CC||jakub at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #4 from Jakub Jelinek  ---
Simplified testcase:
struct B { B  << (long); };
struct A { A (); long a, b, c, d, e, f; };

A::A ()
{
  B q;
  q << 0 << a << 0 << b << 0 << (b / a) << 0 << c << 0 << (c / a) << 0
<< d << 0 << (d / a) << 0 << e << 0 << (e / a) << 0 << f << 0
<< (f / a) << 0;
}

Seems it hangs this way only when in constructor or destructor, when it is in a
function or some method, it doesn't hang.

[Bug c++/71393] [6/7 Regression] Compilation hang

2016-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71393

Richard Biener  changed:

   What|Removed |Added

   Keywords||compile-time-hog
   Target Milestone|--- |6.2
Summary|[6.1 Regression]|[6/7 Regression]
   |Compilation hang|Compilation hang