#BUG REPORT: UE 5.7.4 Engine Source does not compile on MacOS 26.4.1 with Clang 21.0.0

1 messages · Page 1 of 1 (latest)

worthy barn
#

Bug Report: Engine compilation fails on macOS due to strict implicit conversion warnings

Environment

  • OS: macOS 26.4.1 (Build 25E253)
  • Xcode: 26.4 (Build 17E192)
  • Clang: Apple clang version 21.0.0 (clang-2100.0.123.102)
  • UE: Unreal Engine 5.7.4

Steps to Reproduce

Execute the Unreal Build Tool script to compile an Engine program (such as CrashReportClient) on macOS using the latest Xcode/Clang version:

./Engine/Build/BatchFiles/RunUBT.sh CrashReportClient Mac Development

Expected Behavior

The Engine source code should compile successfully without any strict compiler warnings failing the build.

Actual Behavior

The build fails because -Werror interacts with new implicit conversion warnings introduced in newer versions of Clang, promoting them to terminal errors. These warnings—specifically -Wimplicit-int-float-conversion and -Wcharacter-conversion—are not properly suppressed or mapped inside CppCompileWarnings.cs.

Logs

[1/47] Compile [Apple] Module.XmlParser.cpp
In file included from <WORKSPACE_ROOT>/Engine/Intermediate/Build/Mac/arm64/CrashReportClient/Development/XmlParser/Module.XmlParser.cpp:2:
In file included from <WORKSPACE_ROOT>/Engine/Source/Runtime/XmlParser/Private/FastXml.cpp:6:
In file included from <WORKSPACE_ROOT>/Engine/Source/Runtime/Core/Public/Misc/FeedbackContext.h:12:
In file included from <WORKSPACE_ROOT>/Engine/Source/Runtime/Core/Public/HAL/PlatformTime.h:7:
In file included from <WORKSPACE_ROOT>/Engine/Source/Runtime/Core/Public/Mac/MacPlatformTime.h:5:
<WORKSPACE_ROOT>/Engine/Source/Runtime/Core/Public/Apple/ApplePlatformTime.h:36:10: error: implicit conversion from 'uint64' (aka 'unsigned long long') to 'double' may lose precision [-Werror,-Wimplicit-int-float-conversion]

[2/47] Compile [Apple] Module.HTTP.cpp
In file included from <WORKSPACE_ROOT>/Engine/Intermediate/Build/Mac/arm64/CrashReportClient/Development/HTTP/Module.HTTP.cpp:14:
<WORKSPACE_ROOT>/Engine/Source/Runtime/Online/HTTP/Private/GenericPlatform/GenericPlatformHttp.cpp:401:31: error: implicit conversion from 'const UTF8CHAR' (aka 'const char8_t') to 'TCHAR' (aka 'char16_t') may change the meaning of the represented code unit [-Werror,-Wcharacter-conversion]

Additional Context

Because CrashReportClient is an Engine program, it evaluates its own target file (CrashReportClient.Target.cs) and bypasses any project-level compiler overrides. The build relies entirely on the default UBT warning configuration, which currently does not suppress -Werror=implicit-int-float-conversion or -Werror=character-conversion on this Clang toolchain version.

#

This also happens with other critical infrastructure like ShaderCompileWorker.

junior mirage
#

Note: Supported Xcode versions were downgraded from UE 5.6 due to some issues with compiling and linking when using the latest versions.

worthy barn
#

Thanks @junior mirage. New M5 laptop, I just installed all the latest stuff on it.

My old M3 has MacOS 26.3.1 with Xcode 26.0.1 Clang 17.0.0, and that one builds UE 5.7.4 correctly.

worthy barn
#

Google thinks Xcode 26.3 should also use Clang 17.0.0 so I'll try that.

#

Xcode 26.3 is confirmed to work.