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 c++/36631] New: [4.3 Regression] attribute always_inline -> sorry, unimplemented: recursive inlining


The following code generates a recursive inlining error in 4.3.[01] while it
did not in 4.[12]. Somehow, the bug requires having both always_inline
attributes.


template<typename T>
struct B {
        struct C {
                __attribute__((always_inline)) C(C const &c)
                {
                }
        };
        void __attribute__((always_inline)) g(C c)
        {
        }
};

void trigger(B<int> b, B<int>::C c)
{
        b.g(c);
}


Cleanup4.ii: In function 'void trigger(B<int>, B<int>::C)':
Cleanup4.ii:8: sorry, unimplemented: inlining failed in call to 'void
B<T>::g(B<T>::C) [with T = int]': recursive inlining
Cleanup4.ii:15: sorry, unimplemented: called from here


-- 
           Summary: [4.3 Regression] attribute always_inline  ->  sorry,
                    unimplemented: recursive inlining
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: josep dot m dot perez at bsc dot es
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36631


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