Skip to content
  • Nikolai Kosjar's avatar
    ClangStaticAnalyzer: Stop passing on toolchain defines for qmake/msvc case · 98b66534
    Nikolai Kosjar authored
    
    
    Re-produce with:
      1) Open qt-essential-includes.pro and configure it with a Qt 5.7.0 MSVC2013
         64 Bit Kit.
      2) Run the analyzer.
    
    Errors during analyzing occur in winnt.h [1]. This is somehow related to
    /D__int32=long that we pass on. Removing it helps.
    
    It looks like there is no reason anymore to pass on the toolchain defines with
    clang-3.8 at all. Our unit test projects can be parsed by the analyzer without
    them.
    
    Tested with the following kits:
    
    	Qt 5.6.0 (mingw39_32)
    	Qt 5.6.0 (msvc2013)
    	Qt 5.6.0 (msvc2013_64)
    	Qt 5.6.0 (msvc2015)
    	Qt 5.6.0 (msvc2015_64)
    	Qt 5.7.0 (mingw53_32)
    	Qt 5.7.0 (msvc2013)
    	Qt 5.7.0 (msvc2013_64)
    	Qt 5.7.0 (msvc2015)
    	Qt 5.7.0 (msvc2015_64)
    
    [1]
    In file included from D:\dev\creator\creator-4.1\src\plugins\clangstaticanalyzer\unit-tests\qt-essential-includes\main.cpp:2:
    In file included from D:/usr/qt-5.7.0-msvc2013_64/5.7/msvc2013_64/include/QtGui\QtGui:32:
    In file included from D:/usr/qt-5.7.0-msvc2013_64/5.7/msvc2013_64/include/QtGui/qopenglcontext.h:60:
    In file included from D:/usr/qt-5.7.0-msvc2013_64/5.7/msvc2013_64/include\QtGui/qopengl.h:49:
    In file included from D:/usr/qt-5.7.0-msvc2013_64/5.7/msvc2013_64/include\QtCore/qt_windows.h:61:
    In file included from C:\Program Files (x86)\Windows Kits\8.1\include\um\windows.h:164:
    In file included from C:\Program Files (x86)\Windows Kits\8.1\include\shared\windef.h:24:
    In file included from C:\Program Files (x86)\Windows Kits\8.1\include\shared\minwindef.h:182:
    C:\Program Files (x86)\Windows Kits\8.1\include\um\winnt.h(3077,1) :  error: functions that differ only in their return type cannot be overloaded
    __getcallerseflags (
    ^
    D:\dev\llvm\3.8\changingLibClang_install\bin\..\lib\clang\3.8.1\include\intrin.h(68,14) :  note: previous declaration is here
    unsigned int __getcallerseflags(void);
    ~~~~~~~~     ^
    1 error generated.
    
    Change-Id: I2de8d0393a575f88dd59dfa71fbfb11f2debc158
    Reviewed-by: default avatarChristian Kandeler <christian.kandeler@qt.io>
    98b66534