Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-15940

Clang Static Analyzer reporting "error: use of undeclared identifier 'char16_t'" in MSVC 2015 headers

    XMLWordPrintable

Details

    Description

      Analyzing an arbitrary Qt/MSVC 2015 project results in many errors reported in the MSVC headers, such as these:

      :-1: warning: Command line: "C:/QtCreator/bin/clang-cl.exe" "--analyze" "-o" "C:/Users/bullinger/AppData/Local/Temp/qtc-clangstaticanalyzer-Cdoo7y/report-main.cpp-kv1928.plist" "-m32" "/TP" "/D__MSVCRT__=" "/D__w64=" "/D__int64=long long" "/D__int32=long" "/D__int16=short" "/D__int8=char" "/D__ptr32=" "/D__ptr64=" "/D__COUNTER__=0" "/D_CPPRTTI=1" "/D_CPPUNWIND=1" "/D_DEBUG=1" "/D_DLL=1" "/D__FUNCDNAME__= __FUNCDNAME__  " "/D__FUNCSIG__= __FUNCSIG__  " "/D__FUNCTION__= __FUNCTION__  " "/D_INTEGRAL_MAX_BITS=64" "/D_M_IX86=600" "/D_M_IX86_FP=2" "/D_MSC_BUILD=0" "/D_MSC_EXTENSIONS=1" "/D_MSC_FULL_VER=190023506" "/D_MSC_VER=1900" "/D_MT=1" "/D_NATIVE_WCHAR_T_DEFINED=1" "/D_WCHAR_T_DEFINED=1" "/D_WIN32=1" "/D__DATE__="Mar 24 2016"" "/D__TIME__="13:10:01"" "/D__TIMESTAMP__="Thu Mar 24 13:10:01 2016"" "/DUNICODE=1" "/DWIN32=1" "/DQT_QML_DEBUG=1" "/DQT_WIDGETS_LIB=1" "/DQT_GUI_LIB=1" "/DQT_NETWORK_LIB=1" "/DQT_CORE_LIB=1" "/IS:/temp/QWidgetsTestProject/QWidgetsTestProject" "/IC:/Qt/5.6/msvc2015/include" "/IC:/Qt/5.6/msvc2015/include/QtWidgets" "/IC:/Qt/5.6/msvc2015/include/QtGui" "/IC:/Qt/5.6/msvc2015/include/QtANGLE" "/IC:/Qt/5.6/msvc2015/include/QtNetwork" "/IC:/Qt/5.6/msvc2015/include/QtCore" "/IC:/Qt/5.6/msvc2015/mkspecs/win32-msvc2015" "/IC:/Users/bullinger/Build/QWidgetsTestProject-Qt_5_6_0_msvc2015-Debug" "/IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "/IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "/IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "/IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" "/IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "/IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "/IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" "/EHsc" "S:\temp\QWidgetsTestProject\QWidgetsTestProject\main.cpp"
      Process Error: 5
      Output:
      In file included from S:\temp\QWidgetsTestProject\QWidgetsTestProject\main.cpp:1:
      In file included from S:/temp/QWidgetsTestProject/QWidgetsTestProject/mainwindow.h:4:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets\QMainWindow:1:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets/qmainwindow.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtWidgets/qwidget.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtGui/qwindowdefs.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qglobal.h:74:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qcompilerdetection.h:928:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\utility:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xstddef:11:
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xtr1common(207,22) :  error: use of undeclared identifier 'char16_t'
              struct _Is_integral<char16_t>
                                  ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xtr1common(213,22) :  error: use of undeclared identifier 'char32_t'
              struct _Is_integral<char32_t>
                                  ^
      In file included from S:\temp\QWidgetsTestProject\QWidgetsTestProject\main.cpp:1:
      In file included from S:/temp/QWidgetsTestProject/QWidgetsTestProject/mainwindow.h:4:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets\QMainWindow:1:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets/qmainwindow.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtWidgets/qwidget.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtGui/qwindowdefs.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qglobal.h:74:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qcompilerdetection.h:928:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\utility:6:
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xstddef(405,14) :  error: use of undeclared identifier 'char16_t'
              struct hash<char16_t>
                          ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xstddef(411,14) :  error: use of undeclared identifier 'char32_t'
              struct hash<char32_t>
                          ^
      In file included from S:\temp\QWidgetsTestProject\QWidgetsTestProject\main.cpp:1:
      In file included from S:/temp/QWidgetsTestProject/QWidgetsTestProject/mainwindow.h:4:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets\QMainWindow:1:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets/qmainwindow.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtWidgets/qwidget.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtGui/qwindowdefs.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qglobal.h:74:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qcompilerdetection.h:928:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\utility:7:
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\iosfwd(267,21) :  error: use of undeclared identifier 'char16_t'
              struct char_traits<char16_t>
                                 ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\iosfwd(276,21) :  error: use of undeclared identifier 'char32_t'
              struct char_traits<char32_t>
                                 ^
      In file included from S:\temp\QWidgetsTestProject\QWidgetsTestProject\main.cpp:1:
      In file included from S:/temp/QWidgetsTestProject/QWidgetsTestProject/mainwindow.h:4:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets\QMainWindow:1:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets/qmainwindow.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtWidgets/qwidget.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtGui/qwindowdefs.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qglobal.h:85:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\algorithm:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xmemory:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xmemory0:8:
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(611,33) :  error: use of undeclared identifier 'char16_t'
      template<> class numeric_limits<char16_t>
                                      ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(901,33) :  error: use of undeclared identifier 'char32_t'
      template<> class numeric_limits<char32_t>
                                      ^
      In file included from S:\temp\QWidgetsTestProject\QWidgetsTestProject\main.cpp:1:
      In file included from S:/temp/QWidgetsTestProject/QWidgetsTestProject/mainwindow.h:4:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets\QMainWindow:1:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets/qmainwindow.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtWidgets/qwidget.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtGui/qwindowdefs.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qglobal.h:1107:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qtypeinfo.h:34:
      C:/Qt/5.6/msvc2015/include\QtCore/qtypetraits.h(245,31) :  error: use of undeclared identifier 'char16_t'
      template<> struct is_integral<char16_t> : true_type { };
                                    ^
      C:/Qt/5.6/msvc2015/include\QtCore/qtypetraits.h(246,31) :  error: use of undeclared identifier 'char32_t'
      template<> struct is_integral<char32_t> : true_type { };
                                    ^
      In file included from S:\temp\QWidgetsTestProject\QWidgetsTestProject\main.cpp:1:
      In file included from S:/temp/QWidgetsTestProject/QWidgetsTestProject/mainwindow.h:4:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets\QMainWindow:1:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets/qmainwindow.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtWidgets/qwidget.h:38:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qobject.h:41:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qstring.h:42:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qbytearray.h:45:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\string:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\istream:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\ostream:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\ios:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xlocnum:10:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\streambuf:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xiosbase:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xlocale:8:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\stdexcept:7:
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xstring(2623,22) :  error: use of undeclared identifier 'char16_t'
      typedef basic_string<char16_t, char_traits<char16_t>, allocator<char16_t> >
                           ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xstring(2623,53) :  error: expected unqualified-id
      typedef basic_string<char16_t, char_traits<char16_t>, allocator<char16_t> >
                                                          ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xstring(2625,22) :  error: use of undeclared identifier 'char32_t'
      typedef basic_string<char32_t, char_traits<char32_t>, allocator<char32_t> >
                           ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xstring(2625,53) :  error: expected unqualified-id
      typedef basic_string<char32_t, char_traits<char32_t>, allocator<char32_t> >
                                                          ^
      In file included from S:\temp\QWidgetsTestProject\QWidgetsTestProject\main.cpp:1:
      In file included from S:/temp/QWidgetsTestProject/QWidgetsTestProject/mainwindow.h:4:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets\QMainWindow:1:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets/qmainwindow.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtWidgets/qwidget.h:38:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qobject.h:41:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qstring.h:42:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qbytearray.h:45:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\string:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\istream:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\ostream:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\ios:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xlocnum:10:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\streambuf:6:
      In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xiosbase:6:
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xlocale(1004,30) :  error: use of undeclared identifier 'char16_t'
              class _CRTIMP2_PURE codecvt<char16_t, char, _Mbstatet>
                                          ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xlocale(1328,30) :  error: use of undeclared identifier 'char32_t'
              class _CRTIMP2_PURE codecvt<char32_t, char, _Mbstatet>
                                          ^
      In file included from S:\temp\QWidgetsTestProject\QWidgetsTestProject\main.cpp:1:
      In file included from S:/temp/QWidgetsTestProject/QWidgetsTestProject/mainwindow.h:4:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets\QMainWindow:1:
      In file included from C:/Qt/5.6/msvc2015/include/QtWidgets/qmainwindow.h:37:
      In file included from C:/Qt/5.6/msvc2015/include\QtWidgets/qwidget.h:38:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qobject.h:41:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qstring.h:42:
      In file included from C:/Qt/5.6/msvc2015/include\QtCore/qbytearray.h:45:
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\string(640,8) :  error: unknown type name 'u16string'
      inline u16string operator "" s(const char16_t *_Str, size_t _Len)
             ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\string(640,38) :  error: unknown type name 'char16_t'
      inline u16string operator "" s(const char16_t *_Str, size_t _Len)
                                           ^
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\string(645,8) :  error: unknown type name 'u32string'
      inline u32string operator "" s(const char32_t *_Str, size_t _Len)
             ^
      fatal error: too many errors emitted, stopping now [-ferror-limit=]
      20 errors generated.
      

      Attachments

        For Gerrit Dashboard: QTCREATORBUG-15940
        # Subject Branch Project Status CR V

        Activity

          People

            kosjar Nikolai Kosjar
            VersalEszett Julius Bullinger
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes