[cling] Compatibility with MacOSX27.0.sdk#22625
Merged
Merged
Conversation
This patch renames comparators - from `std::equal_to<llvm::rdf::RegisterRef>` to `llvm::rdf::RegisterRefEqualTo`, and - from `std::less<llvm::rdf::RegisterRef>` to `llvm::rdf::RegisterRefLess`. The original specializations don't satisfy the requirements for the original `std` templates by being stateful and non-default-constructible, so they make the program have UB due to C++17 [namespace.std]/2, C++20/23 [namespace.std]/5. > A program may explicitly instantiate a class template defined in the standard library only if the declaration > - depends on the name of at least one program-defined type, and > - the instantiation meets the standard library requirements for the original template. Backport of llvm/llvm-project@a558d65
…ssary module dependency (#137432) float.h doesn't define anything in Apple's SDKs that the clang float.h doesn't undefine, so all the include_next does is add an unnecessary module dependency. Skip the include_next and completely shadow the SDK header. Backport of llvm/llvm-project@557ddc2
Contributor
|
|
These macros were brought in as part of the TS 18661-1 integration in C23, and then renamed in WG14 N2710. Test coverage is being added to WG14 N3364 from C2y because that paper was fixing a bug with the way these macros are handled with unary + and - operators, so all the existing test coverage was there, just needed to use a header file instead of defining the macros manually. Fixes #162830 Backport of llvm/llvm-project@0e3fdc2
…IFINITY and NAN with float.h (#164348) In C23 mode, both float.h and math.h are required to define INIFINITY and NAN. However, with clang modules, there needs to be a single owner for the declarations. Let that be float.h since that's the suggested true owner in Annex F.2.2 of ISO/IEC 9899:2024, and introduce `__need_infinity_nan` so that math.h can pick up the compiler definitions. Backport of llvm/llvm-project@38473c5
It was introduced in commit c28b205 during the upgrade to LLVM 18 to fix the build on (basically) all platforms, and this remains true on Linux. For Apple however, the newest MacOSX27.0.sdk is incomaptible and the option must not be set.
Similar to ctype.h, this is also caused by the large std module that wraps all submodules. Instead of removing, it seems sufficient to mark the header as textual.
Test Results 22 files 22 suites 3d 12h 46m 47s ⏱️ For more details on these failures, see this check. Results for commit 63a8fdb. ♻️ This comment has been updated with latest results. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
One backport in LLVM headers, two backports for
float.hand one additional to avoid conflicts, not settingBuiltinHeadersInSystemModuleson macOS, and resolving an additional cyclic module dependency.