Describe the bug | Bug描述
项目无法在最新的Clang和Xcode中编译通过。
Steps to reproduce | 如何复现
使用LLVM>=15或最新版Xcode,运行编译脚本即可观察到报错。
Expected behavior | 预期行为
第三方库JoltPhysics正常编译。
Actual behavior | 实际行为
编译JoltPhysics时产生大量报错导致编译失败。
Screenshots/Logs | 截图/日志
CompileC /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/VehicleCollisionTester.o /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Jolt' from project 'Piccolo')
cd /Users/mlekow/Documents/repos/Piccolo
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -ivfsstatcache /var/folders/1w/x1psvkys0t3djz6hfk0217j40000gp/C/com.apple.DeveloperTools/14.3-14E222b/Xcode/SDKStatCaches.noindex/macosx13.3-22E245-.sdkstatcache -target arm64-apple-macos13.3 -fmessage-length\=193 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -fcolor-diagnostics -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -Wno-implicit-fallthrough -DCMAKE_INTDIR\=\"Debug\" -D_DEBUG -DJPH_PROFILE_ENABLED -DJPH_DEBUG_RENDERER -DPICCOLO_VK_LAYER_PATH\=/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/VulkanSDK/bin/MacOS -DPICCOLO_VK_ICD_FILENAMES\=/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/VulkanSDK/bin/MacOS/MoltenVK_icd.json -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -g -Wno-sign-conversion -Wno-infinite-recursion -Wno-move -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -Wno-range-loop-analysis -Wno-semicolon-before-method-body -I/Users/mlekow/Documents/repos/Piccolo/build/engine/3rdparty/JoltPhysics/Build/Debug/include -I/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources-normal/arm64 -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources/arm64 -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources -F/Users/mlekow/Documents/repos/Piccolo/build/engine/3rdparty/JoltPhysics/Build/Debug -std\=c++17 -I. -Wall -Werror -std\=gnu++17 -MMD -MT dependencies -MF /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/VehicleCollisionTester.d --serialize-diagnostics /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/VehicleCollisionTester.dia -c /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp -o /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/VehicleCollisionTester.o
In file included from /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp:6:
In file included from /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.h:6:
In file included from /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Body/Body.h:8:
In file included from /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.h:12:
/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Core/Result.h:153:73: error: unqualified call to 'std::move' [-Werror,-Wunqualified-std-cast-call]
void SetError(string &&inError) { Clear(); new (&mError) string(move(inError)); mState = EState::Error; }
^
std::
In file included from /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp:12:
In file included from /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/PhysicsSystem.h:12:
In file included from /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.h:10:
/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Core/JobSystem.h:58:65: error: unqualified call to 'std::move' [-Werror,-Wunqualified-std-cast-call]
inline JobHandle(JobHandle &&inHandle) noexcept : Ref<Job>(move(inHandle)) { }
^
std::
/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Core/JobSystem.h:65:89: error: unqualified call to 'std::move' [-Werror,-Wunqualified-std-cast-call]
inline JobHandle & operator = (JobHandle &&inHandle) noexcept { Ref<Job>::operator = (move(inHandle)); return *this; }
^
std::
CompileC /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/VehicleAntiRollBar.o /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Jolt' from project 'Piccolo')
cd /Users/mlekow/Documents/repos/Piccolo
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -ivfsstatcache /var/folders/1w/x1psvkys0t3djz6hfk0217j40000gp/C/com.apple.DeveloperTools/14.3-14E222b/Xcode/SDKStatCaches.noindex/macosx13.3-22E245-.sdkstatcache -target arm64-apple-macos13.3 -fmessage-length\=193 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -fcolor-diagnostics -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -Wno-implicit-fallthrough -DCMAKE_INTDIR\=\"Debug\" -D_DEBUG -DJPH_PROFILE_ENABLED -DJPH_DEBUG_RENDERER -DPICCOLO_VK_LAYER_PATH\=/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/VulkanSDK/bin/MacOS -DPICCOLO_VK_ICD_FILENAMES\=/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/VulkanSDK/bin/MacOS/MoltenVK_icd.json -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -g -Wno-sign-conversion -Wno-infinite-recursion -Wno-move -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -Wno-range-loop-analysis -Wno-semicolon-before-method-body -I/Users/mlekow/Documents/repos/Piccolo/build/engine/3rdparty/JoltPhysics/Build/Debug/include -I/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources-normal/arm64 -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources/arm64 -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources -F/Users/mlekow/Documents/repos/Piccolo/build/engine/3rdparty/JoltPhysics/Build/Debug -std\=c++17 -I. -Wall -Werror -std\=gnu++17 -MMD -MT dependencies -MF /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/VehicleAntiRollBar.d --serialize-diagnostics /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/VehicleAntiRollBar.dia -c /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.cpp -o /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/VehicleAntiRollBar.o
CompileC /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/Vec3.o /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Math/Vec3.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Jolt' from project 'Piccolo')
cd /Users/mlekow/Documents/repos/Piccolo
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -ivfsstatcache /var/folders/1w/x1psvkys0t3djz6hfk0217j40000gp/C/com.apple.DeveloperTools/14.3-14E222b/Xcode/SDKStatCaches.noindex/macosx13.3-22E245-.sdkstatcache -target arm64-apple-macos13.3 -fmessage-length\=193 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -fcolor-diagnostics -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -Wno-implicit-fallthrough -DCMAKE_INTDIR\=\"Debug\" -D_DEBUG -DJPH_PROFILE_ENABLED -DJPH_DEBUG_RENDERER -DPICCOLO_VK_LAYER_PATH\=/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/VulkanSDK/bin/MacOS -DPICCOLO_VK_ICD_FILENAMES\=/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/VulkanSDK/bin/MacOS/MoltenVK_icd.json -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -g -Wno-sign-conversion -Wno-infinite-recursion -Wno-move -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -Wno-range-loop-analysis -Wno-semicolon-before-method-body -I/Users/mlekow/Documents/repos/Piccolo/build/engine/3rdparty/JoltPhysics/Build/Debug/include -I/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources-normal/arm64 -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources/arm64 -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources -F/Users/mlekow/Documents/repos/Piccolo/build/engine/3rdparty/JoltPhysics/Build/Debug -std\=c++17 -I. -Wall -Werror -std\=gnu++17 -MMD -MT dependencies -MF /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/Vec3.d --serialize-diagnostics /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/Vec3.dia -c /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Math/Vec3.cpp -o /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/Vec3.o
CompileC /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/UVec4.o /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Math/UVec4.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Jolt' from project 'Piccolo')
cd /Users/mlekow/Documents/repos/Piccolo
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -ivfsstatcache /var/folders/1w/x1psvkys0t3djz6hfk0217j40000gp/C/com.apple.DeveloperTools/14.3-14E222b/Xcode/SDKStatCaches.noindex/macosx13.3-22E245-.sdkstatcache -target arm64-apple-macos13.3 -fmessage-length\=193 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -fcolor-diagnostics -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -Wno-implicit-fallthrough -DCMAKE_INTDIR\=\"Debug\" -D_DEBUG -DJPH_PROFILE_ENABLED -DJPH_DEBUG_RENDERER -DPICCOLO_VK_LAYER_PATH\=/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/VulkanSDK/bin/MacOS -DPICCOLO_VK_ICD_FILENAMES\=/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/VulkanSDK/bin/MacOS/MoltenVK_icd.json -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -g -Wno-sign-conversion -Wno-infinite-recursion -Wno-move -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -Wno-range-loop-analysis -Wno-semicolon-before-method-body -I/Users/mlekow/Documents/repos/Piccolo/build/engine/3rdparty/JoltPhysics/Build/Debug/include -I/Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources-normal/arm64 -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources/arm64 -I/Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/DerivedSources -F/Users/mlekow/Documents/repos/Piccolo/build/engine/3rdparty/JoltPhysics/Build/Debug -std\=c++17 -I. -Wall -Werror -std\=gnu++17 -MMD -MT dependencies -MF /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/UVec4.d --serialize-diagnostics /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/UVec4.dia -c /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Math/UVec4.cpp -o /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/UVec4.o
note: Run script build phase 'Generate CMakeFiles/ALL_BUILD' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'ALL_BUILD' from project 'Piccolo')
note: Run script build phase 'CMake PostBuild Rules' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'PiccoloEditor' from project 'Piccolo')
note: Run script build phase 'Generate engine/CMakeFiles/PiccoloPreCompile' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'PiccoloPreCompile' from project 'Piccolo')
note: Run script build phase 'Generate CMakeFiles/ZERO_CHECK' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'ZERO_CHECK' from project 'Piccolo')
note: Run script build phase 'Generate engine/shader/CMakeFiles/PiccoloShaderCompile' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'PiccoloShaderCompile' from project 'Piccolo')
note: Run script build phase 'CMake PostBuild Rules' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'PiccoloParser' from project 'Piccolo')
** BUILD FAILED **
The following build commands failed:
CompileC /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/Wheel.o /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Vehicle/Wheel.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Jolt' from project 'Piccolo')
CompileC /Users/mlekow/Documents/repos/Piccolo/build/build/Jolt.build/Debug/Objects-normal/arm64/VehicleController.o /Users/mlekow/Documents/repos/Piccolo/engine/3rdparty/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Jolt' from project 'Piccolo')
(2 failures)
Describe the bug | Bug描述 项目无法在最新的Clang和Xcode中编译通过。
Steps to reproduce | 如何复现 使用LLVM>=15或最新版Xcode,运行编译脚本即可观察到报错。
Expected behavior | 预期行为 第三方库JoltPhysics正常编译。
Actual behavior | 实际行为 编译JoltPhysics时产生大量报错导致编译失败。
Screenshots/Logs | 截图/日志
Desktop | 桌面环境
Additional context | 补充信息 问题看起来与未做限定的move操作有关。