[
https://issues.apache.org/jira/browse/THRIFT-6250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18114909#comment-18114909
]
Sylwester Lachiewicz commented on THRIFT-6250:
----------------------------------------------
Fix for the in-tree families: [PR
#3853|https://github.com/apache/thrift/pull/3853].
_This comment was created with AI assistance._
> Clean up the warnings in the MSVC CI build
> ------------------------------------------
>
> Key: THRIFT-6250
> URL: https://issues.apache.org/jira/browse/THRIFT-6250
> Project: Thrift
> Issue Type: Improvement
> Components: Build Process, C++ - Compiler, C++ - Library
> Reporter: Sylwester Lachiewicz
> Priority: Minor
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The MSVC CI job ([example run on
> master|https://github.com/apache/thrift/actions/runs/34762947299]) prints
> about 400 warning lines. Apart from the AI_V4MAPPED redefinition tracked in
> [THRIFT-6249|https://issues.apache.org/jira/browse/THRIFT-6249], they fall
> into these families, none of which is a bug in the code being compiled, and
> each has a small in-tree fix.
> h3. Fixed by the linked PR
> * *C4005 INT8_MIN and the other stdint limit macros, 9 per run*, in the
> flex-generated {{thriftl.cc}} ({{parse.vcxproj}}). Flex's skeleton defines
> them itself when {{__STDC_VERSION__}} is not C99, which is the case for a C++
> compile, and guards each with {{#ifndef}}; MSVC's {{stdint.h}}, included
> later, then redefines them. A {{%top}} block in
> [compiler/cpp/src/thrift/thriftl.ll|https://github.com/apache/thrift/blob/master/compiler/cpp/src/thrift/thriftl.ll]
> that includes {{<stdint.h>}} before the skeleton makes the guards skip.
> * *D9002 ignoring unknown option '-std=c++11', 4 per run*.
> [lib/py/setup.py|https://github.com/apache/thrift/blob/master/lib/py/setup.py]
> passes the GCC flag to every compiler, including cl.exe.
> * *CMake Warning (dev): Policy CMP0144 is not set, 3 per run*. The build
> passes {{LIBEVENT_ROOT}} and CMake 3.27+ warns that {{find_package}} ignores
> upper-case {{<PACKAGENAME>_ROOT}} variables until the policy is NEW.
> [CMakeLists.txt|https://github.com/apache/thrift/blob/master/CMakeLists.txt]
> already sets CMP0074 the same way.
> * *CMake Warning (dev): package name mismatch in FindClangTools, 3 per run*.
> [build/cmake/FindClangTools.cmake|https://github.com/apache/thrift/blob/master/build/cmake/FindClangTools.cmake]
> calls {{find_package_handle_standard_args}} for {{clang-tidy}},
> {{clang-apply-replacements}} and {{run-clang-tidy}} from a module named
> ClangTools; {{FPHSA_NAME_MISMATCHED}} declares that intentional.
> * *C4858 discarding return value, 1 per run*, at
> [lib/cpp/test/SecurityTest.cpp:297|https://github.com/apache/thrift/blob/master/lib/cpp/test/SecurityTest.cpp#L297]:
> the test constructs a shared_ptr only to check that the constructor throws.
> h3. Left out, with the reason
> * *LNK4098 defaultlib 'LIBCMT' conflicts, 5 per run*, on the five targets
> that link libevent (TNonblockingServerTest, TNonblockingSSLServerTest,
> TestClient, TestServer, processor_test). libevent 2.1.8's {{Makefile.nmake}}
> sets no runtime flag, so {{cl}} defaults to {{/MT}}, while Thrift builds
> {{/MD}}. The fix is {{SET CL=/MD}} in
> [build/appveyor/build-libevent.bat|https://github.com/apache/thrift/blob/master/build/appveyor/build-libevent.bat]
> before the {{nmake}} call, which changes the Docker image and therefore
> waits for [PR #3844|https://github.com/apache/thrift/pull/3844] to land first.
> * *C4244 at protocol.tcc:995 (Py_ssize_t to int), 1 per run*. [PR
> #3594|https://github.com/apache/thrift/pull/3594] and [PR
> #3596|https://github.com/apache/thrift/pull/3596] (THRIFT-6069) rewrite that
> file; not worth a conflict.
> * *CS0114 'Xception.Message' hides inherited member, 2 per run*, in the
> generated netstd code for {{ThriftTest.thrift}}: the IDL names a field
> {{message}} on an exception. A generator change, separate ticket if wanted.
> * *C4244 in libevent's own sources, 4 per image build*. Third-party code,
> only visible when the image is rebuilt.
> * *{{[WARNING:...]}} lines from the Thrift compiler* while generating
> {{DebugProtoTest.thrift}} and {{ThriftTest.thrift}}: expected output of those
> test inputs.
> _This issue was created with AI assistance._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)