Commit Graph

3608 Commits

Author SHA1 Message Date
nate-chandler
20930c3b4a Merge pull request #35595 from nate-chandler/other-main
[SILGen] Enable alternative entry point name.
2021-01-27 15:22:27 -08:00
swift-ci
9aad33b08f Merge remote-tracking branch 'origin/main' into rebranch 2021-01-27 10:32:29 -08:00
Michael Gottesman
6e61279dec Merge pull request #35587 from gottesmm/pr-5db2d0b093c814bacaaf559563926c5dec16acc3
[ast] Enable the ASTVerifier behind the enable-ast-verifier flag in no-asserts builds.
2021-01-27 10:13:54 -08:00
swift-ci
2967e35a49 Merge remote-tracking branch 'origin/main' into rebranch 2021-01-26 20:52:47 -08:00
Varun Gandhi
d77d7fa308 Merge pull request #35305 from varungandhi-apple/vg-diag-clang-type-mismatch
[Sema] Diagnose type error on Clang type mismatch.
2021-01-26 20:50:33 -08:00
swift-ci
47a0b2585b Merge remote-tracking branch 'origin/main' into rebranch 2021-01-26 18:52:48 -08:00
Alexis Laferrière
c76269ec1a [ModuleInterface] Preserve SPI information for indirect conformances
rdar://73082943
2021-01-26 15:28:27 -08:00
Nate Chandler
e21550ad90 [SILGen] Enable alternative entry point name.
Previously, the name of the entry point function was always main.  Here,
a new frontend flag is added to enable an arbitrary name to be
specified.

rdar://58275758
2021-01-26 10:43:33 -08:00
Varun Gandhi
f9570b2d34 [NFC] Pass full convention printing boolean for types etc.
When -experimental-print-full-convention is set, we should be printing
the full convention in diagnostics, doc comments etc.
2021-01-25 18:47:39 -08:00
Michael Gottesman
1de2d3f7c0 [ast] Enable the ASTVerifier behind the enable-ast-verifier flag in no-asserts builds.
This follows the design of how we handled this with
sil-verify-all. Specifically, the default behavior is to run only in asserts
builds, but one can use the two flags: enable-ast-verifier and
disable-ast-verifier to override the default behavior.

The reason why this is interesting is that this means that when compiling
normally, we will not run the verifier, so we won't have a perf hit. But we can
now ask the user to run with this flag (or in a future maybe a re-run in the
driver would do this for them), saving us time when screening bugs by avoiding
the need to build an asserts compiler to triage if the ASTVerifier would catch
the bug.
2021-01-25 11:55:47 -08:00
swift-ci
74761e3ffe Merge remote-tracking branch 'origin/main' into rebranch 2021-01-19 18:32:17 -08:00
Slava Pestov
c456748551 Frontend: Remove a couple of obsolete staging flags
-enable-subst-sil-function-types-for-function-values
-enable-large-loadable-types

These defaulted to on, and there were no corresponding flags for
turning them off, so the flags had no effect.
2021-01-19 17:47:53 -05:00
swift-ci
90eb4fe6af Merge remote-tracking branch 'origin/main' into rebranch 2021-01-15 13:12:33 -08:00
Xi Ge
fcbc2b4d9d Merge pull request #35414 from nkcsgexi/volatile-open-input
Frontend: add an option -bad-file-descriptor-retry-count
2021-01-15 12:58:55 -08:00
Xi Ge
ae9d873009 Frontend: add an option -bad-file-descriptor-retry-count
This option allows the compiler to retry opening an input file if the previous
opening returns an error of bad file descriptor. Swift-driver will set this
argument in certain circumstances to walk-around such error.

rdar://73157185
2021-01-15 10:28:27 -08:00
swift-ci
6841728fb2 Merge remote-tracking branch 'origin/main' into rebranch 2021-01-14 09:32:28 -08:00
Robert Widmann
cc0d919653 Remove Compiled Source 2021-01-13 23:00:16 -08:00
Robert Widmann
2475095021 Remove Ranges File Type 2021-01-13 22:42:17 -08:00
Robert Widmann
d427d38bd2 Remove SourceComparator 2021-01-13 22:42:17 -08:00
Nate Chandler
20db2c0981 Merge branch 'main' into rebranch
Conflicts:
	include/swift/Basic/AnyValue.h
2021-01-12 16:30:02 -08:00
Brent Royal-Gordon
5036a55550 [Frontend] Allow additional files for diagnostic verifier
This change adds a frontend flag, -verify-additional-file, which can be used to pass extra files directly to the diagnostic verifier. These files are not otherwise considered to be Swift source files; they are not compiled or even properly parsed.

This feature can be used to verify diagnostics emitted in non-source files, such as in module interfaces or header files.
2021-01-11 15:59:25 -08:00
Slava Pestov
28e7ed03d0 AST: Remove the 'legacy' request dependency graph implementation 2021-01-08 23:17:12 -05:00
swift-ci
7c08a49dc1 Merge remote-tracking branch 'origin/main' into rebranch 2021-01-08 18:32:53 -08:00
Slava Pestov
60644295d3 Merge pull request #35307 from slavapestov/wmo-perf-fix
Frontend: Don't record request references in WMO builds
2021-01-08 21:29:44 -05:00
swift-ci
0988129fe1 Merge remote-tracking branch 'origin/main' into rebranch 2021-01-08 16:12:47 -08:00
Artem Chikin
7e6536d983 Merge pull request #34786 from artemcm/DependencyScanLibrary
Dependency Scanning Library
2021-01-08 15:57:25 -08:00
Slava Pestov
797813fda4 Frontend: Don't record request references in WMO builds
Part of <rdar://problem/72906325>.
2021-01-07 23:52:55 -05:00
swift_jenkins
62343a4d44 Merge remote-tracking branch 'origin/main' into next 2021-01-07 11:34:13 -08:00
Artem Chikin
79d559e361 [Dependency Scanning] Deprecate and remove -scan-clang-dependencies
Since it was introduced, its use-case has been entirely subsumed by batch scanning.
2021-01-07 09:08:20 -08:00
Artem Chikin
7d1d8a4661 [Dependency Scanning] Factor ModuleDependenciesCache out of a CompilerInstance into callers of scanDependencies
It is now the responsibility of the scanDependencies code to instantiate (and share) the cache.
e.g. FrontendTool instantiates a new cache per `-scan-dependencies` invocation, and the DependencyScanningTool keeps one shared cache across its lifetime.
2021-01-07 09:08:20 -08:00
Kavon Farvardin
a2c57d13c3 [concurrency] initial declaration of MainActor
Implementation is left as a TODO for now.

Resolves rdar://72161578
Partially resolves rdar://72105129
2021-01-06 15:01:22 -08:00
swift_jenkins
de9e56fb12 Merge remote-tracking branch 'origin/main' into next 2020-12-16 19:43:18 -08:00
Dan Liew
8e95189d24 Merge pull request #35074 from apple/dliew/rdar-69335186
Disable "UseOdrIndicator" ASan instrumentation mode by default.
2020-12-16 19:19:40 -08:00
swift_jenkins
a28809d097 Merge remote-tracking branch 'origin/main' into next 2020-12-16 13:03:38 -08:00
Artem Chikin
47da04fd72 Merge pull request #34417 from artemcm/FrontendParseableOutput
Add support for parseable-output straight from the frontend
2020-12-16 12:59:40 -08:00
Dan Liew
9208b52de1 Disable "UseOdrIndicator" ASan instrumentation mode by default.
Previously Swift enabled the "UseOdrIndicator" ASan instrumentation mode
and gave no option to disable this. This probably wasn't intentional but
happened due to the fact the
`createModuleAddressSanitizerLegacyPassPass()` function has a default
value for the `UseOdrIndicator` parameter of `true` and in Swift we
never specified this parameter explicitly.

Clang disables the "UseOdrIndicator" mode by default but allows it to be
enabled using the `-fsanitize-address-use-odr-indicator` flag.
Having "UseOdrIndicator" off by default is probably the right
default choice because it bloats the binary. So this patch changes the
Swift compiler to match Clang's behavior.

This patch disables the "UseOdrIndicator" mode by default but adds a
hidden driver and frontend flag (`-sanitize-address-use-odr-indicator`)
to enable it. The flag is hidden so that we can remove it in the future
if needed.

A side effect  of disabling "UseOdrIndicator" is that by we will no
longer use private aliases for poisoning globals. Private aliases were
introduced to avoid crashes
(https://github.com/google/sanitizers/issues/398) due to ODR violations
with non-instrumented binaries. On Apple platforms the use of two-level
namespaces probably means that using private aliases wasn't ever really
necessary to avoid crashes. On platforms with a flat linking namespace
(e.g. Linux) using private aliases might matter more but should users
actually run into problems they can either:

* Fix their environment to remove the ODR, thus avoiding the crash.
* Instrument the previously non-instrumented code to avoid the crash.
* Use the new `-sanitize-address-use-odr-indicator` flag

rdar://problem/69335186
2020-12-15 11:09:30 -08:00
swift_jenkins
8d3a1ae5c8 Merge remote-tracking branch 'origin/main' into next 2020-12-12 18:43:16 -08:00
Xi Ge
1b1fae56cc Frontend: allow specifying only one module trace output path in batch mode
We only need one primary file to emit the module trace file.

rdar://72261567
2020-12-12 15:46:13 -08:00
swift_jenkins
6253b23539 Merge remote-tracking branch 'origin/main' into next 2020-12-11 18:51:07 -08:00
Artem Chikin
942cb0855e Implement frontend parseable-output batch job quasi-PID assignment.
Starting at a crude -1000, each invocation primary input will get its own unique quasi-Pid.
Invocations with only one primary (non-batch) will get a real OS Pid.

The selection of the constant starting point matches what the driver does when outputting its parseable output.
2020-12-11 16:01:04 -08:00
Artem Chikin
23e374ce78 Add support for emitting parseable-output "finished" message and per-primary messages for batched jobs
Inside swift-frontend
2020-12-11 16:01:03 -08:00
Xi Ge
1ba1bd93b2 PrebuiltModules: being resilient to 0-specified build number
swift-driver passes down an SDK version number with a non-existing build number as 0.
The compiler should be resilient to this so we can locate prebuilt module cache.

rdar://72230172
2020-12-11 13:50:51 -08:00
swift_jenkins
669fb36333 Merge remote-tracking branch 'origin/main' into next 2020-12-10 23:32:30 -08:00
martinboehme
f4e74f7907 When qualifying Clang types with a module, make sure we choose a visible module (#32465)
Clang types need special treatment because multiple Clang modules can contain the same type declarations from a textually included header, but not all of these modules may be visible.

This fixes
https://bugs.swift.org/browse/SR-13032

The newly added test breaks without this fix.
2020-12-11 08:15:05 +01:00
Alexis Laferrière
d79a58fbb4 [Frontend] Fix use of unique pointer to VFS
rdar://72137092
2020-12-09 08:29:37 -08:00
swift_jenkins
b4ca21c7b5 Merge remote-tracking branch 'origin/main' into next 2020-12-04 20:18:16 -08:00
Rintaro Ishizaki
bf5d22257a [Frontend] Opt-in missing file recovery 2020-12-04 15:23:43 -08:00
Rintaro Ishizaki
055dc66d3b [Frontend] Recover missing input file by dummy input buffer.
Also, continue trying opening files even if any of primary files are
missing so that the caller can know all files failed to open.

rdar://problem/33757793
2020-12-04 15:23:29 -08:00
swift_jenkins
766832d57d Merge remote-tracking branch 'origin/main' into next 2020-11-30 14:09:40 -08:00
Alexis Laferrière
2328132f4f Merge pull request #34832 from xymus/rmodule-loading
[Frontend] Intro flag to remark on loaded modules location
2020-11-30 12:58:20 -08:00