Skip to content

Resolve deprecated-enum-float-conversion compiler warnings - #8595

Merged
sithlord48 merged 1 commit into
deskflow:masterfrom
samumbach:resolve-deprecated-enum-float-conversion-warnings
May 14, 2025
Merged

Resolve deprecated-enum-float-conversion compiler warnings#8595
sithlord48 merged 1 commit into
deskflow:masterfrom
samumbach:resolve-deprecated-enum-float-conversion-warnings

Conversation

@samumbach

Copy link
Copy Markdown
Contributor

Observed on macOS Monterey 12.7.6 with cmake version 4.0.1, Homebrew clang version 20.1.4, Target: x86_64-apple-darwin21.6.0:

$ CXX="$(brew --prefix llvm)/bin/clang++" CC="$(brew --prefix llvm)/bin/clang" cmake -S . -B build-clang -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=/usr/local/Homebrew/Library/Homebrew/cmake/trap_fetchcontent_provider.cmake -Wno-dev -DBUILD_TESTING=OFF -DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -DBUILD_TESTS:BOOL=OFF -DCMAKE_INSTALL_DO_STRIP=1 -DSYSTEM_PUGIXML:BOOL=ON
...

$ CXX="$(brew --prefix llvm)/bin/clang++" CC="$(brew --prefix llvm)/bin/clang" cmake --build build-clang
...
[ 50%] Building CXX object src/lib/platform/CMakeFiles/platform.dir/OSXScreen.mm.o
cd /Users/samumbach/src/personal/deskflow/build-clang/src/lib/platform && /usr/local/opt/llvm/bin/clang++ -DHAVE_CONFIG_H -DNDEBUG -DQT_CORE_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DSYSAP
I_UNIX=1 -DWINAPI_CARBON=1 -D_THREAD_SAFE -I/Users/samumbach/src/personal/deskflow/build-clang/src/lib/platform/platform_autogen/include -I/Users/samumbach/src/personal/deskflow/src/.
/lib -I/Users/samumbach/src/personal/deskflow/build-clang/src/lib -I/System/Library/Frameworks -F/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/System/Library/Frameworks -isyst
em /usr/local/lib/QtCore.framework/Headers -iframework /usr/local/lib -isystem /usr/local/share/qt/mkspecs/macx-clang -isystem /usr/local/include -isystem /usr/local/lib/QtNetwork.fra
mework/Headers -isystem /usr/local/Cellar/openssl@3/3.5.0/include --sysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk  -DGTEST_USE_OWN_TR1_TUPLE=1 -O3 -DNDEBUG -std=c++20
-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -mmacosx-version-min=12 -fPIC -MD -MT src/lib/platform/CMakeFiles/platform.dir/OSXScreen.mm.o -MF CMakeFiles/platform.d
ir/OSXScreen.mm.o.d -o CMakeFiles/platform.dir/OSXScreen.mm.o -c /Users/samumbach/src/personal/deskflow/src/lib/platform/OSXScreen.mm
/Users/samumbach/src/personal/deskflow/src/lib/platform/OSXScreen.mm:1758:33: warning: arithmetic between floating-point type 'double' and enumeration type '(unnamed enum at /Users/samumbach/src/personal/deskflow/src/lib/platform/OSXScreen.mm:57:1)' is deprecated [-Wdeprecated-enum-float-conversion]
 1758 |   double timeout = ARCH->time() + kCarbonLoopWaitTimeout;
      |                    ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~
/Users/samumbach/src/personal/deskflow/src/lib/platform/OSXScreen.mm:1762:30: warning: arithmetic between floating-point type 'double' and enumeration type '(unnamed enum at /Users/samumbach/src/personal/deskflow/src/lib/platform/OSXScreen.mm:57:1)' is deprecated [-Wdeprecated-enum-float-conversion]
 1762 |       timeout = ARCH->time() + kCarbonLoopWaitTimeout;
      |                 ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.
...

See also symless/synergy#55.

- Observed on macOS Monterey 12.7.6 with cmake version 4.0.1, Homebrew clang version 20.1.4, Target: x86_64-apple-darwin21.6.0
@samumbach

Copy link
Copy Markdown
Contributor Author

There are a few additional compiler warnings, but I'm not sure what, if anything, to do about these:

[ 54%] Building CXX object src/lib/deskflow/CMakeFiles/app.dir/App.cpp.o
cd /Users/samumbach/src/personal/deskflow/build-clang/src/lib/deskflow && /usr/local/opt/llvm/bin/clang++ -DHAVE_CONFIG_H -DNDEBUG -DQT_CORE_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DSYSAP
I_UNIX=1 -DWINAPI_CARBON=1 -D_THREAD_SAFE -I/Users/samumbach/src/personal/deskflow/build-clang/src/lib/deskflow/app_autogen/include -I/Users/samumbach/src/personal/deskflow/src/./lib
-I/Users/samumbach/src/personal/deskflow/build-clang/src/lib -I/Users/samumbach/src/personal/deskflow/build-clang/include -isystem /usr/local/lib/QtCore.framework/Headers -iframework
/usr/local/lib -isystem /usr/local/share/qt/mkspecs/macx-clang -isystem /usr/local/include -isystem /usr/local/lib/QtNetwork.framework/Headers -isystem /usr/local/Cellar/openssl@3/3.5
.0/include --sysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk  -DGTEST_USE_OWN_TR1_TUPLE=1 -O3 -DNDEBUG -std=c++20 -isysroot /Library/Developer/CommandLineTools/SDKs/MacO
SX12.sdk -mmacosx-version-min=12 -fPIC -MD -MT src/lib/deskflow/CMakeFiles/app.dir/App.cpp.o -MF CMakeFiles/app.dir/App.cpp.o.d -o CMakeFiles/app.dir/App.cpp.o -c /Users/samumbach/src
/personal/deskflow/src/lib/deskflow/App.cpp
In file included from /Users/samumbach/src/personal/deskflow/src/lib/deskflow/App.cpp:8:
In file included from /Users/samumbach/src/personal/deskflow/src/./lib/deskflow/App.h:10:
In file included from /Users/samumbach/src/personal/deskflow/src/./lib/base/EventQueue.h:12:
In file included from /Users/samumbach/src/personal/deskflow/src/./lib/base/PriorityQueue.h:11:
In file included from /usr/local/Cellar/llvm/20.1.4_1/bin/../include/c++/v1/vector:363:
/usr/local/Cellar/llvm/20.1.4_1/bin/../include/c++/v1/locale:3226:1: warning: 'wstring_convert<std::codecvt_utf8<wchar_t>>' is deprecated [-Wdeprecated-declarations]
 3226 | wstring_convert<_Codecvt, _Elem, _WideAlloc, _ByteAlloc>::to_bytes(const _Elem* __frm, const _Elem* __frm_end) {
      | ^
/Users/samumbach/src/personal/deskflow/build-clang/include/CLI/CLI.hpp:316:63: note: in instantiation of member function 'std::wstring_convert<std::codecvt_utf8<wchar_t>>::to_bytes' requested here
  316 |     return std::wstring_convert<std::codecvt_utf8<wchar_t>>().to_bytes(str, str + str_size);
      |                                                               ^
/usr/local/Cellar/llvm/20.1.4_1/bin/../include/c++/v1/locale:3083:28: note: 'wstring_convert<std::codecvt_utf8<wchar_t>>' has been explicitly marked deprecated here
 3083 | class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 wstring_convert {
      |                            ^
/usr/local/Cellar/llvm/20.1.4_1/bin/../include/c++/v1/__config:725:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17'
  725 | #    define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED
      |                                         ^
/usr/local/Cellar/llvm/20.1.4_1/bin/../include/c++/v1/__config:698:49: note: expanded from macro '_LIBCPP_DEPRECATED'
  698 | #      define _LIBCPP_DEPRECATED __attribute__((__deprecated__))
      |                                                 ^
1 warning generated.

It looks like wstring_convert is deprecated but there isn't (yet) a suggested replacement?

[ 58%] Building CXX object src/lib/deskflow/CMakeFiles/app.dir/Config.cpp.o
cd /Users/samumbach/src/personal/deskflow/build-clang/src/lib/deskflow && /usr/local/opt/llvm/bin/clang++ -DHAVE_CONFIG_H -DNDEBUG -DQT_CORE_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DSYSAP
I_UNIX=1 -DWINAPI_CARBON=1 -D_THREAD_SAFE -I/Users/samumbach/src/personal/deskflow/build-clang/src/lib/deskflow/app_autogen/include -I/Users/samumbach/src/personal/deskflow/src/./lib
-I/Users/samumbach/src/personal/deskflow/build-clang/src/lib -I/Users/samumbach/src/personal/deskflow/build-clang/include -isystem /usr/local/lib/QtCore.framework/Headers -iframework
/usr/local/lib -isystem /usr/local/share/qt/mkspecs/macx-clang -isystem /usr/local/include -isystem /usr/local/lib/QtNetwork.framework/Headers -isystem /usr/local/Cellar/openssl@3/3.5
.0/include --sysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk  -DGTEST_USE_OWN_TR1_TUPLE=1 -O3 -DNDEBUG -std=c++20 -isysroot /Library/Developer/CommandLineTools/SDKs/MacO
SX12.sdk -mmacosx-version-min=12 -fPIC -MD -MT src/lib/deskflow/CMakeFiles/app.dir/Config.cpp.o -MF CMakeFiles/app.dir/Config.cpp.o.d -o CMakeFiles/app.dir/Config.cpp.o -c /Users/samu
mbach/src/personal/deskflow/src/lib/deskflow/Config.cpp
In file included from /Users/samumbach/src/personal/deskflow/src/lib/deskflow/Config.cpp:17:
/Users/samumbach/src/personal/deskflow/build-clang/include/toml++/toml.h:3573:19: warning: identifier '_tpath' preceded by whitespace in a literal operator declaration is deprecated [-Wdeprecated-literal-operator]
 3573 |                 path operator"" _tpath(const char* str, size_t len)
      |                      ~~~~~~~~~~~^~~~~~
      |                      operator""_tpath
/Users/samumbach/src/personal/deskflow/build-clang/include/toml++/toml.h:9601:27: warning: identifier '_toml' preceded by whitespace in a literal operator declaration is deprecated [-Wdeprecated-literal-operator]
 9601 |                 parse_result operator"" _toml(const char* str, size_t len)
      |                              ~~~~~~~~~~~^~~~~
      |                              operator""_toml
/Users/samumbach/src/personal/deskflow/build-clang/include/toml++/toml.h:9610:27: warning: identifier '_toml' preceded by whitespace in a literal operator declaration is deprecated [-Wdeprecated-literal-operator]
 9610 |                 parse_result operator"" _toml(const char8_t* str, size_t len)
      |                              ~~~~~~~~~~~^~~~~
      |                              operator""_toml
3 warnings generated.

This is from toml++. This warning has been addressed in a more recent version, but it also sounds like removing the whitespace might cause build issues on MSVC?

@sithlord48
sithlord48 self-requested a review May 14, 2025 14:52

@sithlord48 sithlord48 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool thanks for the PR

@sithlord48
sithlord48 enabled auto-merge (rebase) May 14, 2025 14:52
@sithlord48
sithlord48 merged commit 14cb921 into deskflow:master May 14, 2025
@samumbach
samumbach deleted the resolve-deprecated-enum-float-conversion-warnings branch May 14, 2025 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants