This is the mail archive of the gcc-bugs@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]

[Bug tree-optimization/62071] [4.10 Regression] ICE: in before_dom_children, at tree-ssa-pre.c:4411


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62071

--- Comment #6 from Jan Hubicka <hubicka at ucw dot cz> ---
> On 08/14/2014 02:10 PM, Jan Hubicka wrote:
> >I wonder what we should do with both external and comdat here.  Jason, can we devirtualize?
> 
> No, we're setting comdat now to avoid devirtualization, because we
> can't be confident that we'll be able to refer to the definition
> where it gets emitted.

We had issues where function body was not produced because it is not reachable
by the frontend's definition and it would be comdat otherwise. The case of
inline function whose out of line body is keyed to another unit seems bit
different...
> 
> >The constructor is keyed to other compilation unit here, but we are provided with a body
> >that we will never use (modulo the tree-ssa-pre bug that brings the reference into code).
> 
> Hmm, we might consider overriding DECL_EXTERNAL so that there's a
> definition available for devirtualization.

I can always implement logic to use it only when it is inlined, but that will
probably drag
in references to other symbols belonging to the class...

Honza


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