[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-11-20 Thread jason at gcc dot gnu dot org


--- Comment #8 from jason at gcc dot gnu dot org  2008-11-20 18:42 ---
Subject: Bug 37540

Author: jason
Date: Thu Nov 20 18:40:52 2008
New Revision: 142054

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=142054
Log:
PR c++/37540
* call.c (build_over_call): Take the address of the function even
in a template.
(build_new_method_call): Remember the type of the called function
in a template.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/decltype14.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-11-20 Thread jason at gcc dot gnu dot org


--- Comment #9 from jason at gcc dot gnu dot org  2008-11-20 18:42 ---
Fixed.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-11-19 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2008-11-19 08:42 ---
Jason, how could we avoid creating the type dependent CALL_EXPR_FN?
It is created by build_new_method_call, but for templates both args and
instance
are going through build_non_dependent_expr which modifies them.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu dot org
 AssignedTo|jakub at gcc dot gnu dot org|unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-11-19 Thread jason at gcc dot gnu dot org


--- Comment #7 from jason at gcc dot gnu dot org  2008-11-19 21:56 ---
I'll poke at this.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-09-16 17:09:22 |2008-11-19 21:56:40
   date||


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-10-21 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2008-10-21 16:38 ---
Created an attachment (id=16521)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16521action=view)
gcc44-pr37540.patch

Fix.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-10-21 Thread mmitchel at gcc dot gnu dot org


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-09-24 Thread dgregor at gcc dot gnu dot org


--- Comment #4 from dgregor at gcc dot gnu dot org  2008-09-24 13:51 ---
We need to look at CALL_EXPR_FN's type because the decltype of a call retrieves
the return type of the the function called, which may be a REFERENCE_TYPE. The
type of the expression will have stripped away that reference.


-- 


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-09-17 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2008-09-17 10:28 ---
Caused by http://gcc.gnu.org/viewcvs?root=gccview=revrev=138843
Any reason why you look at CALL_EXPR_FN's type instead of just TREE_TYPE
(expr)?
In this case TREE_TYPE (expr) is int, but CALL_EXPR_FN is COMPONENT_REF with
NULL TREE_TYPE, created by:
5692  if (processing_template_decl  call != error_mark_node)
5693call = (build_min_non_dep_call_list
5694(call,
5695 build_min_nt (COMPONENT_REF, orig_instance, orig_fns, NULL_TREE),
5696 orig_args));


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dgregor at gcc dot gnu dot
   ||org


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



[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template

2008-09-16 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2008-09-16 17:09 ---
ICEs in finish_decltype_type.

Confirmed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||ice-on-valid-code
  Known to fail||4.4.0
  Known to work||4.3.0
   Last reconfirmed|-00-00 00:00:00 |2008-09-16 17:09:22
   date||
   Target Milestone|--- |4.4.0


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