clangTidy linting corecrt_wstdio.h

clangTidy linting corecrt_wstdio.h

本文关键字:wstdio corecrt linting clangTidy      更新时间:2023-10-16

我试图在旧代码库上使用clangtidy。在尝试一个文件上最简单的测试用例时,我会收到我不知道如何预防的错误。我相信这来自我的文件,其中包括stdafx,其中包括一些标准标头,这些标准标题在某种程度上被覆盖了吗?我删除了一些详细的线...有什么想法?

我正在使用clang电动工具来调用此功能,但是我认为结果将是相同的。

Start Clang Tidy
VERBOSE: clang-build.ps1 invocation args: 
  aVcxprojToCompile = C:DevProjectsmyProjectSrcFooPROJECT.vcxproj 
  aCppToCompile = Checksum.cpp 
  aVcxprojConfigPlatform = Debug|x64 
  aClangCompileFlags = -Werror -std=c++14 -Wall -fms-compatibility-version=19.10 -fms-compatibility -Wmicrosoft 
-Wno-invalid-token-paste -Wno-unknown-pragmas -Wno-unused-variable -Wno-unused-value 
  Verbose = True 
  aTidyFixFlags = -*,modernize-use-equals-default,modernize-use-equals-delete 
  aVisualStudioVersion = 2015 
  aVisualStudioSku = Professional 
  aDirectory = C:DevProjectsmyProjectSrc 
  aDisableNameRegexMatching = True 
VERBOSE: Clang job tool: clang-tidy.exe
VERBOSE: Clang job args[0]: "C:DevProjectsmyProjectSrcFooCommonChecksum.cpp" 
-checks=-*,modernize-use-equals-default,modernize-use-equals-delete 
-header-filter="C:\Dev\Projects\myProject\Src" -quiet -fix-errors -- -Werror -std=c++14 -Wall 
-fms-compatibility-version=19.10 -fms-compatibility -Wmicrosoft -Wno-invalid-token-paste -Wno-unknown-pragmas 
-Wno-unused-variable -Wno-unused-value -D_FooDLL -DZLIB_DLL -D_DEBUG -D_ITERATOR_DEBUG_LEVEL=1 -D_DLL -D_USRDLL 
-DNOMINMAX -DWIN32 -D_WINDOWS -DVL_STATIC_LINKING -D_BIND_TO_CURRENT_VCLIBS_VERSION -D_MT -DSS_NO_CONVERSION 
-D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 -DUNICODE -D_UNICODE
1: C:DevProjectsmyProjectSrcFooCommonChecksum.cpp
49 warnings and 3 errors generated.
Error while processing 
C:DevProjectsmyProjectSrcFooCommonChecksum.cpp.
C:Program Files (x86)Windows Kits10Include10.0.10240.0ucrtcorecrt_wstdio.h(1488): error: inline declaration of '__vswprintf_l' not allowed in block scope [clang-diagnostic-error]
    int, __RETURN_POLICY_SAME, _CRT_STDIO_INLINE, __CRTDECL, __swprintf_l, __vswprintf_l, _vswprintf_s_l,
                               ^
C:Program Files (x86)Windows Kits10Include10.0.10240.0ucrtcorecrt_stdio_config.h(21): message: expanded from macro '_CRT_STDIO_INLINE'
    #define _CRT_STDIO_INLINE __inline
                              ^
C:Program Files (x86)Windows Kits10Include10.0.10240.0ucrtcorecrt_wstdio.h(1497): error: inline declaration of '_vswprintf' not allowed in block scope [clang-diagnostic-error]
    int, __RETURN_POLICY_SAME, _CRT_STDIO_INLINE, __CRTDECL, _swprintf, _swprintf_s, _vswprintf, vswprintf_s,
                               ^
C:Program Files (x86)Windows Kits10Include10.0.10240.0ucrtcorecrt_stdio_config.h(21): message: expanded from macro '_CRT_STDIO_INLINE'
    #define _CRT_STDIO_INLINE __inline
Done Clang Tidy

定义此宏解决了问题: -D _NO_CRT_STDIO_INLINE

只需将其添加到clang的参数

相关文章:
  • 没有找到相关文章