Commit Graph

19 Commits

Author SHA1 Message Date
Allan Shortlidge
d70091f5a1 IRGen: Omit property descriptors from #_hasSymbol checks for static properties.
Property descriptors for static properties were only recently introduced with
SE-438. Since these symbols are not present in Swift libraries that were
compiled with earlier versions of the compiler, it is not safe for
`#_hasSymbol` to check for the property descriptor symbols, since they can be
absent at either link time or runtime.

Resolves rdar://139749275.
2024-11-13 16:00:56 -08:00
Ben Barham
af53b3f1a4 [IRGen] Fix up test for rebranch 2024-10-24 14:45:24 -07:00
Ben Barham
746517c9f2 Merge remote-tracking branch 'origin/main' into manually-merge-main-to-rebranch
Conflicts:
  - `test/IRGen/has_symbol.swift` test updates in rebranch. The new test
    will fail, will fix in the next commit.
2024-10-24 14:20:17 -07:00
Alejandro Alonso
c58cc440f0 Support generic but concrete metatypes with hasSymbol 2024-10-22 13:25:47 -07:00
swift-ci
f8b387573c Merge remote-tracking branch 'origin/main' into rebranch 2024-10-19 23:34:52 -07:00
Allan Shortlidge
6f55aa4170 Tests: Remove -disable-availability-checking in tests that use opaque types.
Use the `%target-swift-5.1-abi-triple` substitution to compile the tests for
deployment to the minimum OS versions required for use of opaque types, instead
of disabling availability checking.
2024-10-19 19:39:18 -07:00
Dario Rexin
38bd7f436e [Tests] Fix IRGen tests for new LLVM version
rdar://132124067

LLVM code gen has changed, so we need to adjust the expected output in our tests accordingly
2024-07-23 11:23:32 -07:00
Arnold Schwaighofer
fdb050d2cf IRGen: Fix some test cases for llvm rebranch 2024-05-01 09:30:15 -07:00
Erik Eckstein
3239400645 convert some IRGen tests to opaque pointers 2023-06-23 06:57:38 -07:00
Arnold Schwaighofer
c1a93e0bde Move tests over to use the %use_no_opaque_pointers option 2023-06-14 10:49:48 -07:00
Allan Shortlidge
00c3b674d0 IRGen: Support 32-bit targets in IRGen/has_symbol.swift
Resolves rdar://102246128
2023-01-24 09:01:53 -08:00
Allan Shortlidge
2e8857d867 IRGen: Add #_hasSymbol support for clang function decls and ObjC classes.
Resolves rdar://103408651.
2022-12-22 10:55:30 -05:00
Allan Shortlidge
5c13523216 IRGen: Generate #_hasSymbol helpers for dynamic and @_dynamicReplacement(for:) functions.
Resolves rdar://103404707
2022-12-19 14:22:10 -05:00
Allan Shortlidge
466335b5d3 Tests: #_hasSymbol support for members of opaque/existential types.
Resolves rdar://101063734
2022-12-01 13:39:22 -08:00
Allan Shortlidge
164ac421d6 Sema: Lift restriction preventing use of #_hasSymbol on non-Darwin platforms.
An early approach to codegen for `#_hasSymbol` relied on the Darwin platfom SDK, but now that the feature lowers directly to NULL checks in LLVM IR a platform restriction is no longer needed.

However, the tests for `#_hasSymbol` remain unsupported on Windows since that OS does not support weak linking.
2022-11-30 14:58:28 -08:00
Allan Shortlidge
ae32b8e148 IRGen: Implement lowering of has_symbol SIL instruction. 2022-11-16 16:07:29 -08:00
Allan Shortlidge
2b63d934c3 Test: Disable IRGen/has_symbol.swift for 32-bit architectures. 2022-11-11 10:38:46 -08:00
Andrew Trick
f9f3f6af94 Fix FileCheck line in IRGen/has_symbol.swift for 32-bit 2022-11-09 09:50:47 -08:00
Allan Shortlidge
7f20380f0b IRGen: Generate #_hasSymbol query functions.
For each decl that needs a `#_hasSymbol()` query function, emit the corresponding helper function body during IRGen. Use `IRSymbolVisitor` to collect linkable symbols associated with the decl and return true from the helper function if the address of every associated symbol is non-null.

Resolves rdar://101884587
2022-11-04 11:19:29 -07:00