Commit Graph

478 Commits

Author SHA1 Message Date
Alexis Laferrière
b72b0c30fa Merge pull request #34612 from xymus/dont-skip-nested-types
[Sema] Add flag to optimize building swiftmodule files preserving type info for LLDB
2020-11-12 19:16:21 -08:00
Alexis Laferrière
02c134372f [Sema] Add option to skip non-inlinable functions without types
This frontend flag can be used as an alternative to
-experimental-skip-non-inlinable-function-bodies that doesn’t skip
functions defining nested types. We want to keep these types as they are
used by LLDB. Other functions ares safe to skip parsing and
type-checking.

rdar://71130519
2020-11-12 14:28:09 -08:00
Alexis Laferrière
92d2c236b8 [Tests] Fix and refactor skip-function-bodies.swift 2020-11-12 14:22:22 -08:00
Ben Barham
b0577b0641 Merge pull request #34472 from bnbarham/benb/allow-errors-69815975
[Serialization] Add an option to output modules regardless of errors
2020-11-11 08:30:18 +10:00
Daniel Rodríguez Troitiño
d765f2367b Merge pull request #34653 from drodriguez/windows-unsupported-msvc-2017-test
[windows] Mark crash-in-user-code as UNSUPPORTED in VS2017
2020-11-10 10:52:19 -08:00
Ben Barham
241559dc88 [Serialization] Add an option to output modules regardless of errors
Adds a new frontend option
"-experimental-allow-module-with-compiler-errors". If any compilation
errors occur while generating the .swiftmodule, this mode will skip SIL
entirely and only serialize the (likey invalid) AST.

This existence of this option during generation is serialized into the
resulting .swiftmodule. Errors found in deserialization are only allowed
if it is set.

Primarily intended for IDE requests (eg. indexing and code completion)
to ensure robust cross-module results, despite possible errors.

Resolves rdar://69815975
2020-11-10 14:47:22 +10:00
Daniel Rodríguez Troitiño
00b35b7176 [windows] Mark crash-in-user-code as UNSUPPORTED in VS2017
The test is very flaky. It works and stops working randomly for no
apparent reason. To avoid future problems, and since VS2019 keeps
working without these problems, mark the tests as unsupported to avoid
the noise.

See also #34143 and #34625.
2020-11-09 17:35:06 -08:00
Xi Ge
87f57f95e0 Merge pull request #34645 from nkcsgexi/emit-supported-features
Front-end: add a front-end action to print supported features of the compiler
2020-11-09 16:53:26 -08:00
Xi Ge
e4916b8c85 Front-end: add a front-end action to print supported features of the compiler
This could help swift-driver to check whether a compiler feature is supported so
it could adjust arguments accordingly.
2020-11-09 14:34:49 -08:00
Daniel Rodríguez Troitiño
f8585d75d1 [windows] Partial revert #34143. Remove XFAIL.
The test started working in the last week, for unknown reasons.

Remove the XFAIL line, but keep the infra for detecting the MSVC version
for the tests. It might be useful later.

If the test starts failing again, and nobody has any idea why, the best
path forward might be marking it as UNSUPPORTED.
2020-11-07 15:57:12 -08:00
Ben Barham
7cee600bcd [SILGen] Add flag to skip typechecking and SIL gen for function bodies
Adds a new flag "-experimental-skip-all-function-bodies" that skips
typechecking and SIL generation for all function bodies (where
possible).

`didSet` functions are still typechecked and have SIL generated as their
body is checked for the `oldValue` parameter, but are not serialized.
Parsing will generally be skipped as well, but this isn't necessarily
the case since other flags (eg. "-verify-syntax-tree") may force delayed
parsing off.
2020-11-06 12:08:19 +10:00
Ben Barham
ea365d5d18 [TypeChecker] Do not attempt to skip typechecking for didSet
15f8eb45ea (see PR#26632) introduced
refined didSet semantics where the `oldValue` parameter is skipped if it
isn't used. This would perform typechecking, but later try to set the
body to skipped and thus fire an assert.

For now, do not attempt to skip typechecking of didSet accessors. Still
skip outputting their SIL though.
2020-11-05 11:27:38 +10:00
eeckstein
7dd38bb444 Merge pull request #34376 from eeckstein/bug-report-message
update and unify the "please file a bug report" message
2020-10-29 08:37:01 +01:00
Richard Howell
8b6a09b1f1 configure Swift test options with CMake 2020-10-26 13:54:07 -07:00
Erik Eckstein
1224cfa61b update and unify the "please file a bug report" message
The new message is:
"Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace."

1. In crash logs we used to print a message which points to the llvm bug tracking page. Now it points to the swift.org bug tracking guidelines.
2. Use the same message in all compiler diagnostics which ask the user to file a bug report.

rdar://problem/70488534
2020-10-23 11:57:22 +02:00
Robert Widmann
abecaa3dcd [Gardening] Move Fingerprints Tests Under Incremental 2020-10-20 17:08:51 -07:00
Robert Widmann
92cb6808fe Merge pull request #34151 from CodaFi/body-paint
Remove Type Body Fingerprints Flags
2020-10-02 11:45:53 -07:00
Robert Widmann
74765a8ba8 Remove Type Body Fingerprints Flags
This infrastructure has more than proven itself. Drop the code paths and tests supporting the status quo.
2020-10-01 13:09:00 -07:00
Daniel Rodríguez Troitiño
fcb51dc947 [windows] XFAIL crash-in-user-code test in MSVC 2017
See also #33383 where this problem is better explained.

MSVC doesn't seem to trigger the exception code when no frame pointers are generated. The only thing missing would be for interpreted code to have a more informative crash message.

Add a new LLVM Lit feature with the value of the VisualStudioVersion environment variable (it seems to not change even for minor versions, so it is an easy way to figure out the 2017/2019 difference, even if updates are applied).

Use the new feature in a XFAIL check in the test.
2020-09-30 14:58:45 -07:00
swift-ci
4e633b6d12 Merge pull request #33835 from owenv/dont-test-null-sourcelocs 2020-09-29 23:42:03 -07:00
Robert Widmann
78e78a23c4 Drop Legacy Tests 2020-09-21 10:42:33 -06:00
Owen Voorhees
6b6b640e13 [Driver] Don't test for null source locations in driver diagnostics
swift-driver doesn't emit these, and there's no reason to check that they're present when using the integrated driver.
2020-09-06 15:33:13 -07:00
Yuta Saito
43fb346b67 [Frontend] Set up output file .swiftmodule.summary
This patch focus on teaching frontend and driver to emit this file.
The actual serialization and deserialization implementation will come
later.
2020-08-27 00:41:16 +09:00
Nathan Hawes
9bcb54910e [AST] Prefer the 'macOS' spelling over 'OSX' when printing the platform kind.
This affects module interfaces, interface generation in sourcekitd, and
diagnostics. Also fixes a fixit that was assuming the 'OSX' spelling when
computing the source range to replace.

Resolves rdar://problem/64667960
2020-07-08 13:51:25 -07:00
Hamish Knight
241c5d95e3 Merge pull request #32461 from hamishknight/its-all-linked 2020-07-08 11:07:17 -07:00
Mishal Shah
60d996f060 [Apple Silicon] Add support for triple and availability canonicalization 2020-07-02 19:26:25 -07:00
Hamish Knight
751e68177c [test] Remove uses of -sil-merge-partial-modules
Replace with -merge-modules, which means we can
also remove the now redundant
`-disable-diagnostic-passes` &
`-disable-sil-perf-optzns` options.
2020-07-01 23:14:50 -07:00
Hamish Knight
b3dcef9796 Avoid unnecessary linking in SIL tools
Previously we were linking in all SIL entities
if the input was a serialized non-SIB AST, and
`-disable-sil-linking` wasn't specified. However
none of the tests appear to want this behaviour.

Stop calling `SerializedSILLoader::getAll`, and
remove the `-disable-sil-linking` option, as this
is now the default behaviour.
2020-07-01 23:14:01 -07:00
Rintaro Ishizaki
87e93496db [Test] Add a test case for https://bugs.swift.org/browse/SR-12728
rdar://problem/62895098
2020-06-25 16:00:17 -07:00
Rintaro Ishizaki
9044aa0376 [AST] ParamDecl::isNonEphemeral() not to evaluate InterfaceTypeRequest
'-dump-parse' for the following code used to hit an assertion failure:

  struct MyStruct {}
  _ = { (val: MyStruct) in }

Because 'isNonEphemeral()' on 'val' parameter unintentionally causes
'InterfaceTypeRequest::evaluate()'. Since 'isNonEphemeral()' inference
based on the interface type is not possible after type checking, return
'false' unless 'hasInterfaceType()'

Also:
  * Dump parameter list on 'EnumElementDecl' as well
  * Adjust the position of 'range=...' in parameter list dumping
2020-06-25 15:01:27 -07:00
Doug Gregor
46f9f2147c [Frontend] Add --version as a frontend flag.
The new driver will defer to the frontend to print version information,
rather than embedded the version information itself.
2020-06-24 21:35:35 -07:00
Doug Gregor
6c0d957ffe [Driver] Execute the frontend when invoked via swift-frontend.
This obviates the need for "-frontend", although we still accept it
for backward compatibility. Switch lit's %target-swift-frontend et al
over to calling swift-frontend.
2020-06-23 13:00:26 -07:00
Daniel Rodríguez Troitiño
2b0039d568 [android] Switch %swiftc_driver for %target-swiftc_driver
When compiling against a platform different than the host, like it
happens when testing against Android stdlib from a Linux host, one needs
to use %target-swiftc_driver to setup the tools directory correctly and
the target options, otherwise errors will happen when trying to link a
host targetted file against the destination platform libraries.
2020-06-19 13:43:32 -07:00
Hamish Knight
0825fa5181 [Frontend] Enforce restrictions on private interfaces
Previously we may have silently bailed if a private
module interface path was specified, but the
frontend action didn't support it. Instead, make
sure we enforce the same restrictions that we
enforce for public module interfaces.
2020-06-18 08:58:30 -07:00
Slava Pestov
965c735a06 Merge pull request #32131 from slavapestov/binary-swiftdeps-format
New binary swiftdeps format
2020-06-11 03:58:35 -04:00
Slava Pestov
fe3f6b3616 Dependencies: Update tests for new binary format 2020-06-10 23:43:40 -04:00
3405691582
7b431b4ddb [test] Mark XFAIL tests for OpenBSD.
These tests are marked XFAIL or UNSUPPORTED because either the tests:
require libc annotation, require Mach-O support, don't recognize calls to
swift-autolink-extract, requires porting alongside Linux, or rely on simd
which is not present.

Additionally, explicit REQUIRES for tsan/asan/fuzzer are added to some
tests, since OpenBSD does not support these sanitizers or fuzzers, since
it's nicer to mark that with REQUIRES rather than XFAIL.
2020-06-10 18:57:19 -04:00
Robert Widmann
3228a5903a [NFC] Rename Flags
-enable-experimental-private-intransitive-dependencies -> -enable-direct-intramodule-dependencies
-disable-experimental-private-intransitive-dependencies -> -disable-direct-intramodule-dependencies

While we're here, rename DependencyCollector::Mode's constants and clean
up the documentation.
2020-06-09 16:00:59 -07:00
Robert Widmann
fdf31c88a6 Add Flags to Enable or Disable EnableExperientalPrivateIntransitiveDependencies
Turn the existing flag into an on-off switch and migrate all the tests in preparation for it being on by default
2020-06-09 12:24:57 -07:00
David Ungar
da14e3119c Fix tests to correspond 2020-06-06 11:17:09 -07:00
Erik Eckstein
266bd0fd87 Cross-module-optimization: issue an error if TBD file generation is requested with CMO
This combination is not supported and may result in undefined-symbol linker errors.

rdar://problem/63238999
2020-05-28 15:33:50 +02:00
Robert Widmann
52ddcea0d2 Diagnose Building SwiftONoneSupport with -experimental-skip-function-bodies
This allows us to push the validation and, importantly, the mutation of this flag into the compiler invocation where it belongs.
2020-05-13 09:13:44 -07:00
Slava Pestov
368d47429d Frontend: Remove coarse-grained dependency graph implementation 2020-04-29 16:55:53 -04:00
Varun Gandhi
a1716fe2a6 [Diagnostics] Update compiler diagnostics to use less jargon. (#31315)
Fixes rdar://problem/62375243.
2020-04-28 14:11:39 -07:00
omochimetaru
a07b35ab03 [Diagnostics] Improve {{none}} fix-it verifier (#30791)
* [Diagnostics] Improve {{none}} fix-it verifier

* split two conditions

* define "none" constant

* support plural

* use Twine and add comment for replacement range

* check if {{none}} is at the end

* use noneMarkerStartLoc

* update second {{none}} error message

Co-Authored-By: Owen Voorhees <owenvoorhees@gmail.com>

* update test case for second {{none}}

* fix test case for new {{none}} check

* Use named struct

* set const

Co-authored-by: Owen Voorhees <owenvoorhees@gmail.com>
2020-04-09 15:32:14 -07:00
Owen Voorhees
2c2850d7eb Merge branch 'master' into verifier-wording-fix 2020-04-01 17:05:24 -05:00
Owen Voorhees
768c4385cf [DiagnosticVerifier] More accurate wording when printing diagnostics from external sources 2020-03-21 15:11:46 -07:00
Slava Pestov
9ec80df97e SIL: Remove curried SILDeclRefs 2020-03-19 02:20:21 -04:00
Ben Langmuir
63963ab6fe [test] Update uses of llvm-objdump to --long options
Adapt to llvm upstream commit 5c3ec7dc41f3e15c39a193b45f3cf23255de00a2
to fix the master-next tests.
2020-03-16 11:57:08 -07:00
Martin Boehme
f81ef9cf1e Prepend "diagnostic produced by Clang:" to Clang diagnostics. 2020-03-02 14:56:42 +01:00