[Bug ipa/82801] [6/7/8 Regression] Internal compiler error with Eigen and __attribute__((always_inline, flatten))

marxin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Nov 2 08:11:00 GMT 2017


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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at ucw dot cz,
                   |                            |jamborm at gcc dot gnu.org
      Known to fail|                            |5.4.0, 6.3.0, 7.2.0, 8.0

--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> ---
Thanks for that. Btw. started with r218024.
I think we can't check for node->decl as the node is removed in time it's
checked:

cgraph dump:
...
Removing unused symbols: A<<anonymous> >::A() [with int <anonymous> = 1]
...

ipa inline dump:
Flattening functions:
Flattening double B::m_fn1() const
 Inlining A<<anonymous> >::A() [with int <anonymous> = 1] into double
B::m_fn1() const.
   Estimating body: A<<anonymous> >::A() [with int <anonymous> = 1]/3
   Known to be false: not inlined
   size:0 time:0.000000 nonspec time:2.000000

That said proper fix would be probably to have a cgraph node removal hook that
will register removed nodes that will be skipping in main flattening loop.
Do we face a similar problem somewhere else in inliner?


More information about the Gcc-bugs mailing list