[Bug c++/56915] [4.9 regression] ICE in symtab_add_to_same_comdat_group, at symtab.c:383

2013-05-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56915

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||jason at gcc dot gnu.org
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org

--- Comment #7 from Jason Merrill jason at gcc dot gnu.org ---
Fixed.


[Bug c++/56915] [4.9 regression] ICE in symtab_add_to_same_comdat_group, at symtab.c:383

2013-04-24 Thread paolo.carlini at oracle dot com


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



--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2013-04-24 
09:16:20 UTC ---

Normally patches go to gcc-patches.


[Bug c++/56915] [4.9 regression] ICE in symtab_add_to_same_comdat_group, at symtab.c:383

2013-04-24 Thread shixiong at kugelworks dot com


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



--- Comment #6 from Shixiong shixiong at kugelworks dot com 2013-04-24 
09:36:13 UTC ---

(In reply to comment #5)

yes, I know that. I just want to let the bug submitter have a try.

 Normally patches go to gcc-patches.


[Bug c++/56915] [4.9 regression] ICE in symtab_add_to_same_comdat_group, at symtab.c:383

2013-04-23 Thread shixiong at kugelworks dot com


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



--- Comment #3 from Shixiong shixiong at kugelworks dot com 2013-04-23 
23:09:17 UTC ---

Created attachment 29924

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29924

Patch for PR56915


[Bug c++/56915] [4.9 regression] ICE in symtab_add_to_same_comdat_group, at symtab.c:383

2013-04-23 Thread shixiong at kugelworks dot com


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



--- Comment #4 from Shixiong shixiong at kugelworks dot com 2013-04-23 
23:09:58 UTC ---

Please see the attached Patch for this ICE.


[Bug c++/56915] [4.9 regression] ICE in symtab_add_to_same_comdat_group, at symtab.c:383

2013-04-12 Thread shixiong at kugelworks dot com


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



Shixiong shixiong at kugelworks dot com changed:



   What|Removed |Added



 CC||shixiong at kugelworks dot

   ||com



--- Comment #1 from Shixiong shixiong at kugelworks dot com 2013-04-12 
07:29:38 UTC ---

I am not an expert of C++11, but I am trying to help you with this ICE. Before

I jump into the compiler to find the bugs, I guess you probably made several

mistakes in your given code.



1) when lambdas are used as parameters, I think, they should be written in

either function pointer (no state) or functional object (with state, dependent

on outside vars).



2) it declared typename T::type b(), but instantiated the class with int, but

int do not  have a filed named type.



3)C++11 seems to only support monomorphic lambdas, if you want to use

polymorphic lambdas, you probably should use other libraries like Boost.



If changed into the following code, it works.



template typename T

class A

{

 T b(); // Note: still cannot use 'typename T::type b()'

};





template typename T, typename U

void waldo(T, U);



template typename T

void bar()

{

  AT (*func_pointer1) (AT) = [](AT a) { return a; };

  void (*func_pointer2) () = []() { };

waldo(func_pointer2,

  func_pointer1);

//  waldo ([](AT a) { return a; }, []() { });

}



int main()

{

barint();

}



Anyway, it is just my personal opinion. If I made mistakes, pls. tell me.


[Bug c++/56915] [4.9 regression] ICE in symtab_add_to_same_comdat_group, at symtab.c:383

2013-04-12 Thread zeratul976 at hotmail dot com


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



--- Comment #2 from Nathan Ridge zeratul976 at hotmail dot com 2013-04-12 
07:40:46 UTC ---

(In reply to comment #1)

 I am not an expert of C++11, but I am trying to help you with this ICE. Before

 I jump into the compiler to find the bugs, I guess you probably made several

 mistakes in your given code.



I know the code is invalid. However, an ICE is always a compiler bug, even if

it's for invalid code. The compiler should give proper errors for invalid code.

(In this case it gives the ICE after giving the proper errors - that's still a

bug). Also, an ICE on invalid code can indicate a logic error in the compiler's

code that may also be causing (yet to be discovered) ICEs on valid code.





Also, just FYI:



 3)C++11 seems to only support monomorphic lambdas, if you want to use

 polymorphic lambdas, you probably should use other libraries like Boost.



Using a lambda inside a template does not make it polymorphic. Each

instantiation of the template will have a different, monomorphic, lambda.


[Bug c++/56915] [4.9 regression] ICE in symtab_add_to_same_comdat_group, at symtab.c:383

2013-04-11 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 CC||hubicka at gcc dot gnu.org

   Target Milestone|--- |4.9.0