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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1
   Target Milestone|---                         |8.0

--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Started with r54937.

Another testcase:

trippels@gcc2-power8 ~ % cat scavenger.ii
struct A {
  virtual void VisitPointers(int *, int **, int **) = 0;
  virtual void VisitNextCodeLink() { VisitPointers(0, 0, 0); }
};
struct B : A {
  __attribute__((always_inline)) void VisitPointers(int *, int **, int **);
};
void B::VisitPointers(int *, int **, int **) {}

trippels@gcc2-power8 ~ % g++ -O3 -c scavenger.ii
scavenger.ii:8:6: warning: always_inline function might not be inlinable
[-Wattributes]
 void B::VisitPointers(int *, int **, int **) {}
      ^
scavenger.ii: In member function ‘virtual void A::VisitNextCodeLink()’:
scavenger.ii:8:6: error: inlining failed in call to always_inline ‘virtual void
B::VisitPointers(int*, int**, int**)’: caller is not optimized
scavenger.ii:3:51: note: called from here
   virtual void VisitNextCodeLink() { VisitPointers(0, 0, 0); }
                                      ~~~~~~~~~~~~~^~~~~~~~~

Reply via email to