Commit Graph

296 Commits

Author SHA1 Message Date
Xi Ge
86918102c4 ABIChecker: abort if given baseline file is absent 2020-10-05 13:49:06 -07:00
Xi Ge
950eb74e67 ABI Checker: use lower-cased decl keywords to be consistent with source. NFC 2020-09-12 10:35:03 -07:00
Xi Ge
028a75572c ModuleInterface: remark potential version differences between SDK and prebuilt modules
Prebuilt-module directory now contains a SystemVersion.plist file copied from the SDK
it's built from. This patch teaches the compiler to remark this version and the SDK version
when -Rmodule-interface-rebuild is specified. The difference between these versions could
help us debug unusable prebuilt modules.
2020-09-04 11:45:05 -07:00
Xi Ge
e107182f1a Merge remote-tracking branch 'apple/master' into master-rebranch 2020-09-02 18:36:37 -07:00
Xi Ge
a4d731ed9f ModuleLoader: remove several walk-arounds for not having a persistent ClangImporterOptions available. NFC 2020-09-02 15:10:50 -07:00
Xi Ge
c403b140e1 ClangImporter: refactor ClangImporterOptions to be ASTContext-owned. NFC
We need ClangImporterOptions to be persistent for several scenarios: (1)
when creating a sub-ASTContext to build Swift modules from interfaces; and
(2) when creating a new Clang instance to invoke Clang dependencies scanner.

This change is NFC.
2020-09-01 14:04:22 -07:00
swift_jenkins
4eaa071e8b Merge remote-tracking branch 'origin/master' into master-rebranch 2020-08-31 18:46:27 -07:00
Xi Ge
55e77785df ABI checker: add a mechansim for specifying allowd ABI breakages
When the checker found a breakage listed in the user-specified list,
the breage should be consumed internally without failing the check.

rdar://68086477
2020-08-31 10:57:15 -07:00
swift_jenkins
114cfe5101 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-08-27 17:07:02 -07:00
Xi Ge
5faedbd1ab Merge pull request #33667 from nkcsgexi/allow-list-rename
ABIChecker: rename argument -protocol-requirement-white-list to -protocol-requirement-allow-list. NFC
2020-08-27 16:52:34 -07:00
swift_jenkins
80d87082d3 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-08-27 14:00:17 -07:00
Xi Ge
103b61c8be ABIChecker: rename argument -protocol-requirement-white-list to -protocol-requirement-allow-list 2020-08-27 12:06:25 -07:00
Xi Ge
1a44db3dcf ABIChecker: exclude decls with the @_alwaysEmitIntoClient attribute
Removing or updating @_alwaysEmitIntoClient functions are never ABI-breaking, thus
we should exclude them from the symbol set for ABI stability checking.

rdar://67883661
2020-08-27 10:58:48 -07:00
swift-ci
2dbd6228eb Merge remote-tracking branch 'origin/master' into master-rebranch 2020-08-11 13:43:28 -07:00
Xi Ge
a8255f2601 abi-checker: allow ABI checker to deserialize @_implementationOnly modules on demand
This could prevent the tool from crashing when module recovery failed.
2020-08-11 10:41:01 -07:00
Nathan Hawes
b0a2230860 Manually merge remote-tracking branch 'upstream/master' into merge-in-master 2020-07-27 09:25:01 -07:00
Meghana Gupta
b34791a0a0 Update code as per Apple Style Guide
whitelist -> allowlist
blacklist -> denylist
2020-07-24 11:37:15 -07:00
swift_jenkins
45b3113ce1 Merge remote-tracking branch 'origin/master' into master-next 2020-06-17 10:46:06 -07:00
Xi Ge
4448a229df ABI-checker: include Swift symbols only when ABI checking is enabled
ABI checking logics are largely Swift-specific, so we should exclude
symbols from the underlying Clang module.

rdar://64373983
2020-06-16 16:41:07 -07:00
Karoy Lorentey
68351d2110 Revert "Merge remote-tracking branch 'origin/master-next'"
This reverts commit 1c9b0908e6, reversing
changes made to 3eb82c1836.
2020-06-08 16:48:38 -07:00
swift_jenkins
45975414d9 Merge remote-tracking branch 'origin/master' into master-next 2020-05-23 18:58:49 -07:00
Xi Ge
c5730beb42 API checker: only diagnose adding enum cases to exhaustive enums
Adding new cases to a non-exhaustive enum type isn't source-breaking
since it only triggers a warning.

rdar://63464929
2020-05-23 15:56:22 -07:00
swift_jenkins
66e1d00d86 Merge remote-tracking branch 'origin/master' into master-next 2020-05-11 11:19:10 -07:00
Xi Ge
9883e664b2 ABIChecker: don't diagnose missing availability attribute for decls where the attribute doesn't apply
rdar://62990671
2020-05-11 08:35:11 -07:00
swift_jenkins
b441bd2a5f Merge remote-tracking branch 'origin/master' into master-next 2020-04-27 21:18:36 -07:00
Xi Ge
6b6a65fd5b ABI Checker: add an option to serialize diagnostics to a file path 2020-04-27 16:51:08 -07:00
swift_jenkins
ebc4926f8b Merge remote-tracking branch 'origin/master' into master-next 2020-04-21 09:57:24 -07:00
Xi Ge
7f8b5f7ead ABI-checker: specify default baseline file names for non-Darwin platforms
rdar://62111064
2020-04-21 09:26:37 -07:00
Michael Forster
21adecc9c2 Another StringRef -> std::string conversion fix.
This is needed to make this code compile on master-next.
2020-04-21 06:28:30 +02:00
Xi Ge
701ad83d87 Merge pull request #31141 from nkcsgexi/abi-checker-baseline-directory
ABI-checker: add an option to dump generated baselines into a directory. NFC
2020-04-20 16:18:33 -07:00
Xi Ge
c68c1234b4 ABI-checker: add an option to dump generated baselines into a directory. NFC
Using a directory instead of an exact file name for the generated
baseline allows the tool to use target triple as file name, which is
expected by the diagnostic phase.
2020-04-20 14:31:58 -07:00
Michael Forster
00b09c723c More StringRef -> std::string conversion fixes.
This is needed for the master-next branch.
2020-04-20 09:47:41 +02:00
Xi Ge
4effe03d07 ABI-checker: allow users to specify a directory containing baseline files. NFC
The ABI-checker tool could pick up a baseline file to use according to
the given target triple.
2020-04-18 14:39:22 -07:00
Xi Ge
140a151de1 ABI-checker: diagnose missing available attributes for members of extensions instead of the extensions themselves
rdar://61644469
2020-04-11 19:00:49 -07:00
Xi Ge
cec45195a2 APIChecker: adding enum cases are source breaking changes
rdar://60041622
2020-03-05 16:23:49 -08:00
swift_jenkins
70bfa0cfc1 Merge remote-tracking branch 'origin/master' into master-next 2020-01-06 12:17:27 -08:00
Harlan Haskins
4d731735d2 [api-digester] Teach the api-digester about hasMissingDesignatedInitializers
Because we won’t be serializing this attribute, add custom diagnostics for the cases where:

- We add @_hasMissingDesignatedInits to an open class, which means subclasses won’t be able to inherit its inits
- We remove @_inheritsConvenienceInitializers, which means APIs are removed
2020-01-06 10:15:07 -08:00
swift_jenkins
b9f998ffa4 Merge remote-tracking branch 'origin/master' into master-next 2019-11-15 15:56:48 -08:00
Xi Ge
c8ce5b304c ABI/API checker: don't complain about changing var to let or vice versa
The tool diagnoses the removal of getter/setter for properties, so complaining about the keyword change can be redundant.

rdar://problem/57201030
2019-11-14 13:59:26 -08:00
Xi Ge
64c0680686 Merge remote-tracking branch 'apple/master' into master-next 2019-10-28 10:19:36 -07:00
Xi Ge
7d600eb27a ABI/API checker: teach the tool to emit diagnostics to serialized source location for decls 2019-10-17 16:31:56 -07:00
swift-ci
b71f094f77 Merge remote-tracking branch 'origin/master' into master-next 2019-09-16 18:29:18 -07:00
Xi Ge
8912ef9fd0 ABI/API checker: move node mapping information from under -v to under -debug. NFC 2019-09-16 15:30:02 -07:00
swift-ci
d628a95f15 Merge remote-tracking branch 'origin/master' into master-next 2019-09-12 17:10:18 -07:00
Xi Ge
78bb298389 ABI/API checker: diagnose adding new designated initializers to open classes
If client's subclass provides an implementation of all of its superclass designated
initializers, it automatically inherits all of the superclass convenience initializers.
This means if a new designated init is added to the base class, the inherited
convenience init may be missing and cause breakage.

SR-11454
2019-09-12 15:46:45 -07:00
swift-ci
7d42e53828 Merge remote-tracking branch 'origin/master' into master-next 2019-09-11 19:50:26 -07:00
Xi Ge
4189b6c99b AST: promote API/ABI impact bit of decl attributes to AST, NFC
ABI/API checker used to hard-code whether adding or removing of a
decl attribute could break the existing ABI/API. This is not ideal because
new attributes may be added to AST without updating the checker. After this
change, new decl attribute could be specified whether it has ABI/API
impact and the checker could pick up the knowledge instantly.
2019-09-11 17:58:36 -07:00
Mike Ash
1758566d35 Merge branch 'master' into master-next 2019-09-11 16:56:06 -04:00
Xi Ge
a7e8620582 ABI/API checker: include SDK version number when generating diagnostic baselines 2019-09-10 17:00:46 -07:00
Jordan Rose
eefb0d0644 Merge remote-tracking branch 'origin/master' into master-next 2019-09-04 14:01:43 -07:00