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

            Bug ID: 60235
           Summary: Inlining fails with template specialization and -fPIC
                    on Linux AMD64
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: joker.eph at gmail dot com

Tested with g++-4.6, g++4.8 and current svn:
$ ./gcc-svn-install/bin/g++ --version
g++ (GCC) 4.9.0 20140217 (experimental)


I have a simple C++ code that exhibit this issue: a simple templated function
using one int as template parameter. When a specialization is provided the call
is not inlined, but only when compiling with -fPIC (Ubuntu Linux AMD64). The
issue does not appear with g++-4.8 on OSX. 
Clang does not have this issue, in the benchmark I extracted this minimal test
case from, this missing inline doubles the running time.

To reproduce :

$ g++ inlining.cpp -O2 -S  -fPIC  -DNOSPECIALIZATION
$ grep get inlining.s | grep call
$ g++ inlining.cpp -O2 -S  -fPIC
$ grep get inlining.s | grep call
    call    _Z3getILi0EERdPd@PLT

Reply via email to