[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-05 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-05 
16:12 ---
Subject: Bug 23667

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-09-05 16:12:15

Modified files:
gcc/cp : ChangeLog pt.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/g++.dg/template: static15.C 

Log message:
PR c++/23667
* pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
copying a VAR_DECL.

PR c++/23667
* g++.dg/template/static15.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gccr1=1.4870r2=1.4871
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gccr1=1.1028r2=1.1029
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gccr1=1.6010r2=1.6011
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/static15.C.diff?cvsroot=gccr1=NONEr2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-05 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-05 
16:13 ---
Subject: Bug 23667

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-4_0-branch
Changes by: [EMAIL PROTECTED]   2005-09-05 16:13:03

Modified files:
gcc/cp : ChangeLog pt.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/g++.dg/template: static15.C 

Log message:
PR c++/23667
* pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
copying a VAR_DECL.

PR c++/23667
* g++.dg/template/static15.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.4648.2.90r2=1.4648.2.91
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.978.2.21r2=1.978.2.22
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.5084.2.377r2=1.5084.2.378
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/static15.C.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=NONEr2=1.1.2.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-05 Thread mmitchel at gcc dot gnu dot org

--- Additional Comments From mmitchel at gcc dot gnu dot org  2005-09-05 
16:15 ---
Fixed in 4.0.2.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-04 Thread pcarlini at suse dot de

--- Additional Comments From pcarlini at suse dot de  2005-09-04 14:10 
---
By the way, the error message I get with mainline (or current 4_0-branch):

reduced_2005_09_04.cc: In function 'int main()':
reduced_2005_09_04.cc:66: error: '(((int)X0::n_primes) == 256)' is not a valid
template argument for type 'bool' because it is a non-constant expression

is *very* interesting: non-constant?!?!?!

For comparison, with 4.0.1 (which is OK), if I change 256 - 0:

reduced_2005_09_04.cc: In function 'int main()':
reduced_2005_09_04.cc:66: error: invalid use of undefined type 'struct
static_assertfalse'
reduced_2005_09_04.cc:59: error: declaration of 'struct static_assertfalse'

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-03 Thread mmitchel at gcc dot gnu dot org

--- Additional Comments From mmitchel at gcc dot gnu dot org  2005-09-03 
18:52 ---
Does anyone happen to have a smallish test-case for this one?

Obviously, I can build one of the affected toolchains, but if someone has a
cut-down test case handy, I'll take it. :-)

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |mark at codesourcery dot com
   |dot org |
 Status|UNCONFIRMED |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-03 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-03 
19:04 ---
(In reply to comment #12)
 Does anyone happen to have a smallish test-case for this one?
 
 Obviously, I can build one of the affected toolchains, but if someone has a
 cut-down test case handy, I'll take it. :-)

It effects all targets, just the slower the machine, the more likely the 
timeout.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-03 Thread mark at codesourcery dot com

--- Additional Comments From mark at codesourcery dot com  2005-09-03 20:08 
---
Subject: Re:  [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc
 execution test times out

pinskia at gcc dot gnu dot org wrote:
 --- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-03 
 19:04 ---
 (In reply to comment #12)
 
Does anyone happen to have a smallish test-case for this one?

Obviously, I can build one of the affected toolchains, but if someone has a
cut-down test case handy, I'll take it. :-)
 
 
 It effects all targets, just the slower the machine, the more likely the 
 timeout.

Yes, but that makes it no easier for me to test and debug the problem.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-03 Thread pcarlini at suse dot de

--- Additional Comments From pcarlini at suse dot de  2005-09-03 23:06 
---
(In reply to comment #14)
 Yes, but that makes it no easier for me to test and debug the problem.

Hi, today I tried, quickly, but failed to find a simple testcase. Tomorrow,
I'll try again, harder. Thanks for taking care of this issue: as far as I'm
concerned, tr1/unordered* are completely broken (now that we sorted out the
most important bugs and would be seriously usable for 4.0.2 :(
And the issue seems serious in general, anyway.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-03 Thread mark at codesourcery dot com

--- Additional Comments From mark at codesourcery dot com  2005-09-04 03:08 
---
Subject: Re:  [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc
 execution test times out

pcarlini at suse dot de wrote:
 --- Additional Comments From pcarlini at suse dot de  2005-09-03 23:06 
 ---
 (In reply to comment #14)
 
Yes, but that makes it no easier for me to test and debug the problem.
 
 
 Hi, today I tried, quickly, but failed to find a simple testcase. Tomorrow,
 I'll try again, harder. Thanks for taking care of this issue: as far as I'm
 concerned, tr1/unordered* are completely broken (now that we sorted out the
 most important bugs and would be seriously usable for 4.0.2 :(
 And the issue seems serious in general, anyway.

Definitely!  One way or the other, I'll get this fixed, but I appreciate 
your help.  Please do make sure that you've got the patch I checked in 
today; it's possible that patch magically fixed the problem.  (We can hope!)



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-02 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-02 
19:18 ---
I am thinking this was caused by the patch for PR c++/23099.

-- 
   What|Removed |Added

  Component|libstdc++   |c++
   Keywords||missed-optimization
   Target Milestone|--- |4.0.2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-02 Thread pcarlini at suse dot de


-- 
   What|Removed |Added

  Component|libstdc++   |c++
   Keywords||missed-optimization
   Target Milestone|--- |4.0.2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-02 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-02 
19:31 ---
(In reply to comment #6)
 I am thinking this was caused by the patch for PR c++/23099.
I should say how I came to this conclusion.
The only non front-end patches which changes code gen that went on both 
branches are:

2005-08-31  Richard Henderson  [EMAIL PROTECTED]

* expr.c (expand_expr_real_1) VIEW_CONVERT_EXPR: Force subregs
into a pseudo before applying gen_lowpart.

2005-08-30  Richard Henderson  [EMAIL PROTECTED]

PR target/23630
* expr.c (expand_expr_real_1) VIEW_CONVERT_EXPR: Use gen_lowpart
whenever the mode sizes match.

But that should only improve things and not hurt things as we are no longer 
storing things on stacks.
And then the it could only be a C++ patch and that is the one only went in 
around the time noted here 
which could have caused a code gen:
2005-08-30  Volker Reichelt  [EMAIL PROTECTED]

PR c++/23586
* parser.c (cp_parser_namespace_name): Move diagnostic for
invalid namespace-name to here from ...
* name-lookup.c (do_namespace_alias): ... here and ...
(do_using_directive): ... here.  Remove dead code.

2005-08-28  Mark Mitchell  [EMAIL PROTECTED]

PR c++/23099
* cp-tree.h (saved_scope): Add skip_evaluation.
* decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
DECL_INITIAL, to determine whether or not a static data member was
initialized in the class-specifier.
(cp_finish_decl): Add comment.
* init.c (integral_constant_value): Subtitute into the
initializers for static data members in templates.
* name-lookup.c (push_to_top_level): Save skip_evaluation.
(pop_from_top_level): Restore it.
* pt.c (instantiate_class_template): Do not substitute into the
intializers of static data members when instantiating a class.
(regenerate_decl_from_template): Simplify.
(instantiate_decl): Tidy.  Substitute into the initializer for a
static data member even when the definition of the data member is
not available.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-02 Thread pcarlini at suse dot de

--- Additional Comments From pcarlini at suse dot de  2005-09-02 21:29 
---
(In reply to comment #8)
 (In reply to comment #6)
  I am thinking this was caused by the patch for PR c++/23099.
 I should say how I came to this conclusion.
...

Thanks a lot Andrew.  Over the we I will try reverting a few patches and more
generally I will further investigate the issue.  Any additional help is much
appreciated, of course!

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-02 Thread pcarlini at suse dot de

--- Additional Comments From pcarlini at suse dot de  2005-09-03 01:16 
---
Ok, I can confirm that Andrew's guess, about the involvment of Mark's patch:
what is happening is that, inside hashtable::m_rehash, X0::n_primes == 0
whereas, at line 383 of tr1/hashtable we find:

  templateint dummy
struct X
{
  static const int n_primes = 256;
  static const unsigned long primes[n_primes + 1];
};

therefore, n_primes is supposed to be 256. Then everything goes nuts, in
short, at every insertion a very costly rehashing happens.

Mark, can you please have a look at this issue? 

-- 
   What|Removed |Added

 CC||mmitchel at gcc dot gnu dot
   ||org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667


[Bug c++/23667] [4.0/4.1 Regression] tr1/6_containers/unordered/hashtable/23465.cc execution test times out

2005-09-02 Thread pcarlini at suse dot de

--- Additional Comments From pcarlini at suse dot de  2005-09-03 01:31 
---
Sorry about the typo: X0::n_primes is found wrongly equal to zero (instead of
256) inside prime_rehash_policy::need_rehash.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23667