Commit Graph

1784 Commits

Author SHA1 Message Date
Saleem Abdulrasool
910fbee14e gardening: make c++98-compat-extra-semi an error
This cleans up 90 instances of this warning and reduces the build spew
when building on Linux.  This helps identify actual issues when
building which can get lost in the stream of warning messages.  It also
helps restore the ability to build the compiler with gcc.
2021-11-27 11:40:17 -08:00
swift-ci
85a2e5c42b Merge remote-tracking branch 'origin/main' into rebranch 2021-11-17 21:13:46 -08:00
buttaface
30c292ca87 [android] Update to NDK 23b (#39921)
The latest Long Term Support NDK finally removed binutils, including the bfd/gold
linkers and libgcc. This simplifies our Android support, including making lld the
default linker for Android. Disable three reflection tests that now fail, likely
related to issues with swift-reflection-dump and switching to lld.
2021-11-17 20:58:42 -08:00
Ben Barham
22b91621d7 [rebranch] Immediately release OptTable parsed argument
I had missed that `A` was used after `Args->append`. Just release the
`unique_ptr` straight away and use it in the rest of the function.
2021-11-17 13:08:54 +10:00
Ben Barham
edfe2cb4cc [rebranch] OptTable::ParseOneArg now returns a std::unique_ptr 2021-11-13 17:04:29 +10:00
Ben Barham
c676dfc2fa [rebranch] Update uses of ErrorHandling.h functions
llvm-project `ErrorHandling.h` was updated to remove std::string. This
added a new `report_fatal_error` overload taking a `const Twine &`,
removed the overload that took `const std::string &`, and updated
`fatal_error_handler_t` to use `const char *` rather than `const
std::string &`.

Fix uses of these functions to take into account these updates. Note
that without the `const std::string &` overload, passing a `std::string`
into `report_fatal_error` now results in an ambiguous match between the
`StringRef` and `Twine` overloads so we need to be explicit about one or
the other.
2021-11-13 15:33:09 +10:00
QuietMisdreavus
dd88e0dda6 Merge pull request #39865 from apple/QuietMisdreavus/private-swiftc-symbols
[Driver][SymbolGraph] add new flag -symbol-graph-minimum-access-level

rdar://79099869
2021-10-29 13:01:22 -06:00
Yuta Saito
e738a5dba9 Merge branch 'main' into maxd/driver-wasm-toolchain 2021-10-29 12:07:20 +09:00
Erik Eckstein
4e6c5434f3 driver/frontend: Add an -experimental-performance-annotations option to enable performance annotations 2021-10-28 18:43:14 +02:00
Alexis Laferrière
c4f226e541 [Driver] Move the flag -check-api-availability-only to the driver 2021-10-26 09:28:59 -07:00
Victoria Mitchell
6b5d884042 add new flag -symbol-graph-minimum-access-level 2021-10-21 17:07:41 -06:00
Kuba (Brecka) Mracek
94f23942db Add a -experimental-hermetic-seal-at-link flag that triggers aggressive LTO-based dead-stripping (VFE, WME, conditional runtime records, internalization) (#39793) 2021-10-20 07:30:43 -07:00
Saleem Abdulrasool
15a5d2c54b Revert "[android] Update to NDK 23" 2021-10-16 11:07:23 -07:00
swift-ci
46f3cc9dd8 Merge pull request #39045 from buttaface/android-ndk-23 2021-10-15 20:55:19 -07:00
Ben Barham
f4ab22e231 Update maccatalyst 13.0 target minimum to 13.1
Clang enforces a minimum 13.1 deployment target. The driver, API
checker, and various tests assume 13.0 is a valid minimum. Update these
to reflect the actual 13.1 minimum.

Resolves rdar://84177900
2021-10-16 13:24:45 +10:00
Ben Barham
624337148b [NFC] Formatting cleanup to help with next conflicts 2021-10-15 17:15:51 +10:00
Butta
7fa1b4b2ac [android] Update to NDK 23
The latest Long Term Support NDK finally removed binutils, including the bfd/gold
linkers and libgcc. This simplifies our Android support, including making lld the
default linker for Android. Disable three reflection tests that now fail, likely
related to issues with swift-reflection-dump and switching to lld.

Also, add the libatomic dependency for Android armv7, just as on linux.
2021-10-12 12:37:01 +05:30
Mishal Shah
c2fd49cebb Merge pull request #39473 from apple/rebranch
Update swift:main to support llvm-project:stable/20210726 changes (Rebranch merge)
2021-10-11 09:00:51 -07:00
Doug Gregor
bc4ae04f1f Add -require-explicit-sendable to warn about non-Sendable public types
Introduce a compiler flag that warnings about any public types defined in
a module that are neither explicitly `Sendable` nor explicitly
non-`Sendable` (the latter of which has no spelling currently), which
is intended to help with auditing a module for Sendable conformances.
2021-10-06 12:30:57 -07:00
swift-ci
3b702bf6e4 Merge remote-tracking branch 'origin/main' into rebranch 2021-09-24 11:54:10 -07:00
Egor Zhdan
e1c4ea50c8 Merge pull request #37806 from egorzhdan/clang-executable-path-reapply
ClangImporter: run Clang with a proper executable path (pt 2)
2021-09-24 21:46:03 +03:00
Max Desiatov
710816d3e0 Driver: add support for the Wasm toolchain 2021-09-14 13:02:42 +01:00
swift-ci
cd7ed018bf Merge remote-tracking branch 'origin/main' into rebranch 2021-09-02 11:56:28 -07:00
Varun Gandhi
4a16261c4d [Driver] Update OS versions for rpath checks.
Make sure that we add the appropriate rpaths so that the appropriate
_Concurrency back-deployment library can be picked up.

We don't need to update the Swift driver since it uses the C++ driver
as the source of truth to determine if the relevant rpath should be
added or not.
2021-09-01 15:37:24 -07:00
swift-ci
4b78aa597d Merge remote-tracking branch 'origin/main' into rebranch 2021-08-30 16:33:16 -07:00
Alexis Laferrière
4336084aa6 Merge pull request #39094 from xymus/driver-library-level
[Driver] Make -library-level a driver argument and pass it to the frontend
2021-08-30 16:22:26 -07:00
Alexis Laferrière
9cb3702b0a [Driver] Make -library-level a driver argument and pass it to the frontend
rdar://82458987
2021-08-30 10:06:53 -07:00
swift-ci
aa5595e132 Merge remote-tracking branch 'origin/main' into rebranch 2021-08-28 22:53:46 -07:00
Doug Gregor
9d4ce58ed6 Merge pull request #38930 from DougGregor/concurrency-compatibility-library
[concurrency] Implement a compatibility .a library for Concurrency.
2021-08-28 22:40:37 -07:00
swift-ci
5b763e99e5 Merge remote-tracking branch 'origin/main' into rebranch 2021-08-27 10:33:39 -07:00
Varun Gandhi
0e13fcd857 Merge pull request #38750 from RAJAGOPALAN-GANGADHARAN/sr_14122
Improve usability of -l flag
2021-08-27 10:25:34 -07:00
swift-ci
18ae4b937b Merge remote-tracking branch 'origin/main' into rebranch 2021-08-19 21:13:14 -07:00
Kuba (Brecka) Mracek
8cf6c2e71b [Driver] -c with LTO should still emit bitcode (#35026) 2021-08-19 21:05:35 -07:00
Michael Gottesman
1bc94bfa6a [concurrency] Implement a compatibility .a library for Concurrency.
In a back deployment scenario, this will provide a place where one could provide
function implementations that are not available in the relevant stdlib.

This is just setting up for future work and isn't doing anything interesting
beyond wiring it up/making sure that it is wired up correctly with tests.
2021-08-18 09:35:37 -07:00
swift-ci
e78b2363c1 Merge remote-tracking branch 'origin/main' into rebranch 2021-08-18 09:33:29 -07:00
Doug Gregor
725624fc1b [SE-0286] Disable backward scanning for trailing closures in Swift 6 mode. 2021-08-18 05:54:54 -07:00
Rajagopalan-Gangadharan
48de17d140 Address review comments for reusable function 2021-08-11 10:08:59 +05:30
Rajagopalan-Gangadharan
90637aa8ee Take care of OPT_linker_option_Group to produce desired behaviour
The -l args values are handled by OPT_l and OPT_linker_option_Group,
to do this have created a helper method under Toolchain
2021-08-07 16:23:08 +05:30
swift-ci
53147b2ccb Merge remote-tracking branch 'origin/main' into rebranch 2021-08-06 14:13:40 -07:00
Artem Chikin
9429136112 [Dependency Scanning] Split the ModuleDependencyCache into two: current scan cache & global.
This change causes the cache to be layered with a local "cache" that wraps the global cache, which will serve as the source of truth. The local cache persists only for the duration of a given scanning action, and has a store of references to dependencies resolved as a part of the current scanning action only, while the global cache is the one that persists across scanning actions (e.g. in `DependencyScanningTool`) and stores actual module dependency info values.

Only the local cache can answer dependency lookup queries, checking current scanning action results first, before falling back to querying the global cache, with queries disambiguated by the current scannning action's search paths, ensuring we never resolve a dependency lookup query with a module info that could not be found in the current action's search paths.

This change is required because search-path disambiguation can lead to false-negatives: for example, the Clang dependency scanner may find modules relative to the compiler's path that are not on the compiler's direct search paths. While such false-negative query responses should be functionally safe, we rely on the current scanning action's results being always-present-in-the-cache for the scanner's functionality. This layering ensures that the cache use-sites remain unchanged and that we get both: preserved global state which can be queried disambiguated with the search path details, and an always-consistent local (current action) cache state.
2021-08-06 09:13:42 -07:00
Arnold Schwaighofer
de0218bf09 Adjust to LLVM's DarwinSDKInfo.h changes 2021-08-05 12:15:22 -07:00
Rajagopalan-Gangadharan
fd2fcbb7f8 [WIP] Address review comments - Fix memory leak 2021-08-05 14:53:22 +05:30
Rajagopalan-Gangadharan
4f5cb6a47b -l flag accepts space and emits without space to llvm frontend 2021-08-04 20:48:10 +05:30
swift-ci
f77372596f Merge remote-tracking branch 'origin/main' into rebranch 2021-07-29 15:32:33 -07:00
Mishal Shah
3722bcb85a Revert "[concurrency] Implement a compatibility .a library for Concurrency." 2021-07-29 11:26:51 -07:00
swift-ci
b1977ae14b Merge remote-tracking branch 'origin/main' into rebranch 2021-07-25 13:14:10 -07:00
Michael Gottesman
8441871a04 [concurrency] Implement a compatibility .a library for Concurrency.
In a back deployment scenario, this will provide a place where one could provide
function implementations that are not available in the relevant stdlib.

This is just setting up for future work and isn't doing anything interesting
beyond wiring it up/making sure that it is wired up correctly with tests.
2021-07-23 17:30:18 -07:00
swift-ci
078613b15d Merge remote-tracking branch 'origin/main' into rebranch 2021-07-14 20:54:49 -07:00
Owen Voorhees
b14f2b9934 Merge pull request #38264 from jslegendre/driver-lto-library
[LTO] Driver support for -lto_library flag
2021-07-14 20:36:30 -07:00
Jeremy Legendre
1a381683e4 Fix relative libLTO path 2021-07-12 15:36:33 -04:00