-
Notifications
You must be signed in to change notification settings - Fork 470
Add a workaround for Windows ARM64 miscompile #816
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
We get libdispatch assert failures with Windows ARM64 release mode in an internal app. We suspect that it is due to Clang miscompile. This is a temporary workaround to avoid them.
@swift-ci please test |
elseif (FLAGS MATCHES "2$") | ||
set(FLAGS "/Od;/Og;/Oi;/Oy;/Ob2;/GF;/Gy") | ||
endif() | ||
set_source_files_properties(queue.c PROPERTIES COMPILE_OPTIONS "${FLAGS}") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we do this through #pragma
's that disable optimizations in the source file instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could but the pragma just disables all optimizations and cannot selectively choose the opt flags (though it'd allow to narrow down by functions.) Pros and cons, but I think this is preferred as it doesn't disable all the optimizations.
@compnerd can you rerun the windows CI? I think it's flaky based on the history https://ci-external.swift.org/job/swift-corelibs-libdispatch-PR-windows/ |
@swift-ci please test Windows platform |
@compnerd Can you retrigger the Win CI? |
@swift-ci please test Windows platform |
endif() | ||
set_source_files_properties(queue.c PROPERTIES COMPILE_OPTIONS "${FLAGS}") | ||
endif() | ||
endif() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, this is ... ugly. I can't think of a better way to write this though.
We get libdispatch assert failures with Windows ARM64 release mode in an internal app. We suspect that it is due to Clang miscompile. This is a temporary workaround to avoid them.