This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: make_decl_one_only and inlining


> >> Set DECL_COMDAT.  You said that didn't work but you didn't fully
> >> explain why.  A DECL_COMDAT function should be output in every object
> >> file in which it is referenced.
> >
> > I wasn't sure if that's the correct approach. If it is, some
> > further investigation will be necessary why it doesn't work. We
> > should of course find the places where template instances are
> > used in the frontend and not put out, but that's too much effort
> > right now only to make inlining work.
> 
> Yes, setting the DECL_COMDAT flag is supposed to do the right thing.
> That is what the C++ frontend does; see comdat_linkage.

Yeah, it always seemed to me that COMDAT should be handled same way as INLINE
in cgraph_function_body_availability. It did not make much practical difference
for C++, but I would be fine with that change.

My understanding of C++ one-decl-rule is however bit stronger than this.  When
we make COMDATs non-overwritable by semantically different implementations,
does it make sense to make that for keyed methods and public methods in PIC
libraries?

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]