Commit Graph

15 Commits

Author SHA1 Message Date
Slava Pestov
22ad20a5df TBDGen: Emit class method dispatch thunks 2017-12-18 23:28:33 -08:00
Huon Wilson
fed23ed40d [TBDGen] Include both direct and indirect field offsets.
It is semantically incorrect to miss a symbol, and just misleading to
include an incorrect one in the TBD file (and, it would take a compiler
bug to actually try to reference one from some downstream code), so it
is better to err on the side of including extra symbols than missing
some.

For now, computing the actual directness of a field is difficult, so
let's include both of them.

Fixes rdar://problem/32253411 .
2017-06-19 14:53:21 -07:00
Huon Wilson
40ba18615b [Frontend] -validate-tbd-against-ir has 3 levels of validation.
It can now:

- not validate (=none)
- validate that all symbols in the IR are also in the TBD (=missing),
- validate the above, and also that all in the TBD are in the IR (=all).

The first and last were switched between with the old boolean flag, the
second is new.
2017-05-19 18:36:48 -07:00
Huon Wilson
6b9260582b [test/TBD] Avoid writing to source directory. 2017-04-18 11:33:54 -07:00
Huon Wilson
7bedb6fdd5 [TBDGen] Generic types have fewer symbols. 2017-04-14 17:06:53 -07:00
Huon Wilson
e5acdd42fc [TBDGen] Handle private/internal methods on open classes. 2017-04-14 10:13:11 -07:00
Huon Wilson
c41319b24b [SIL] Only open classes can be subclassed externally. 2017-04-14 10:13:11 -07:00
Huon Wilson
6cccddf39a [TBDGen] Class metaclasses, when interacting with ObjC. 2017-04-13 11:40:50 -07:00
Huon Wilson
53807e4641 [test/TBD] Only test classes with objc_interop.
The list of missing symbols is different on linux, without objc support,
meaning the diff-based testing fails. This is only a problem when we
have do this diffing, so just conditionalise it for now.
2017-03-29 09:44:38 -07:00
Huon Wilson
91bf6771ca [test/TBD] add tests that really use private-access. 2017-03-28 16:31:12 -07:00
Huon Wilson
d7a8b8382f [test/TBD] use "internal" instead of "private". 2017-03-28 16:31:11 -07:00
Huon Wilson
636a3c5821 [TBD] Sort -emit-tbd, and -validate-tbd-against-ir errors.
Also, diff the full output rather than using FileCheck.
2017-03-28 16:31:10 -07:00
Huon Wilson
dab44b3cc6 [TBDGen] Private class decls have public type information. 2017-03-28 16:31:10 -07:00
Huon Wilson
121067a8ce [TBDGen] let: accessors and variable itself. 2017-03-28 16:31:10 -07:00
Huon Wilson
6f822ac3e3 [test] Add TBD tests using -validate-tbd-against-ir.
Only one of these tests actually "passes", since TBDGen is incomplete,
but the use of FileCheck means they'll be flagged to be updated as
TBDGen improves: the failures are known problems.
2017-03-28 16:31:09 -07:00