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



             Bug #: 54988

           Summary: fpmath=sse target pragma causes inlining failure

                    because of target specific option mismatch

    Classification: Unclassified

           Product: gcc

           Version: 4.7.2

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: target

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: g...@blino.org

                CC: loic.yh...@gmail.com, thi...@kde.org





#pragma GCC target "fpmath=sse"



static inline __attribute__((always_inline)) int a(int x) { return x; }



int b(int src)

{

    return a(src);

}



$ gcc -O1 ./qdrawhelper_test.cpp -c

./qdrawhelper_test.cpp: In function 'int b(int)':

./qdrawhelper_test.cpp:3:50: error: inlining failed in call to always_inline

'int a(int)': target specific option mismatch

./qdrawhelper_test.cpp:7:17: error: called from here



I have the patch from bug 33763 applied in this gcc 4.7.2 build, if that

matters.



This bug initially happened when building Qt5 with gcc -m32 on a x86_64 host

(gcc being configured without any --with-arch_32 option), in

qt5/qtbase/src/gui/painting/qdrawhelper.cpp:

In file included from

../../include/QtGui/5.0.0/QtGui/private/qdrawhelper_p.h:1:0,

                 from

/home/sah0146/dev/workspaces/pc32/stb/opensource/LGPL/qt/vendor/qt.gitorious.org/MAIN/qt5/qtbase/src/gui/painting/qdrawhelper.cpp:54:

../../include/QtGui/5.0.0/QtGui/private/../../../../../../../qt5/qtbase/src/gui/painting/qdrawhelper_p.h:

In function 'int multiply_op(int, int, int, int)':

../../include/QtGui/5.0.0/QtGui/private/../../../../../../../qt5/qtbase/src/gui/painting/qdrawhelper_p.h:797:30:

error: inlining failed in call to always_inline 'int qt_div_255(int)': target

specific option mismatch

/home/sah0146/dev/workspaces/pc32/stb/opensource/LGPL/qt/vendor/qt.gitorious.org/MAIN/qt5/qtbase/src/gui/painting/qdrawhelper.cpp:2498:70:

error: called from here



Bug 41201 might be related, even if it mentions C++ only.

Reply via email to