Re: Cleanup DECL streaming

2018-06-22 Thread Richard Biener
On Thu, 21 Jun 2018, Jan Hubicka wrote: > Hi > with -flto -g -O2 -r -nostdlib -flinker-output=nolto-rel I get ICE on: I can't reproduce the ICE on TOT with your patch applied. > ./xg++ t.ii -B. -g -flto -O2 -r -nostdlib -flinker-output=nolto-rel cc1plus: warning: command line option ‘-flinker-o

Re: Cleanup DECL streaming

2018-06-22 Thread Richard Biener
On Thu, 21 Jun 2018, Jan Hubicka wrote: > Hi, > this problem here seems to be that is_cxx returns true and at the same > time auto_die and decltype_auto_die is not initialized. Here die==NULL > and we end up calling add_type_attribute for random reasons. > > I am testing the following but I am no

Re: Cleanup DECL streaming

2018-06-21 Thread Jan Hubicka
Hi, this problem here seems to be that is_cxx returns true and at the same time auto_die and decltype_auto_die is not initialized. Here die==NULL and we end up calling add_type_attribute for random reasons. I am testing the following but I am not sure it is proper fix. Are we supposed to handle a

Re: Cleanup DECL streaming

2018-06-21 Thread Jan Hubicka
Hi with -flto -g -O2 -r -nostdlib -flinker-output=nolto-rel I get ICE on: class a; namespace b { template struct c; struct C { typedef a d; }; void e(); } template class g : f { public: template g(i); }; class a { long k; }; namespace b { template <> struct c { template static a l(j, h);

Re: Cleanup DECL streaming

2018-06-21 Thread Richard Biener
On Thu, 21 Jun 2018, Jan Hubicka wrote: > > > however aren't we supposed to not touch these at late builds? We drop > > > most of TYPE_DECLs in favour > > > of IDENTIFIER_TYPE and thus also throwing away DECL_ORIGINAL_TYPEs. > > > > We keep quite a bit of TYPE_DECLs around for devirt. > > I kno

Re: Cleanup DECL streaming

2018-06-21 Thread Jan Hubicka
> > however aren't we supposed to not touch these at late builds? We drop most > > of TYPE_DECLs in favour > > of IDENTIFIER_TYPE and thus also throwing away DECL_ORIGINAL_TYPEs. > > We keep quite a bit of TYPE_DECLs around for devirt. I know, but we do not keep them systematicaly enough to make

Re: Cleanup DECL streaming

2018-06-21 Thread Richard Biener
On Thu, 21 Jun 2018, Jan Hubicka wrote: > > Hi, > > this patch drops DECL_ORIGINAL_TYPE streaming and also logic handling > > external decls in blocks since we no longer stream them at all. > > > > Bootstrapped/regtested x86_64-linux, OK? > Actually the patch dies with lto-bootstrap :( > 0x9c44fc

Re: Cleanup DECL streaming

2018-06-21 Thread Richard Biener
On Thu, 21 Jun 2018, Jan Hubicka wrote: > Hi, > this patch drops DECL_ORIGINAL_TYPE streaming and also logic handling > external decls in blocks since we no longer stream them at all. > > Bootstrapped/regtested x86_64-linux, OK? OK. Thanks, Richard. > Honza > > * lto-streamer-out.c (DFS

Re: Cleanup DECL streaming

2018-06-21 Thread Jan Hubicka
> Hi, > this patch drops DECL_ORIGINAL_TYPE streaming and also logic handling > external decls in blocks since we no longer stream them at all. > > Bootstrapped/regtested x86_64-linux, OK? Actually the patch dies with lto-bootstrap :( 0x9c44fc gen_member_die ../../gcc/dwarf2out.c:24947 0x9