Slava Pestov
fc91a58d82
IRGen: [ClassLayout] Better fix for SR-4687
...
We cannot use field offset globals if *any* field of a generic class
with Objective-C ancestry is dependent.
This is because the Swift runtime first performs layout starting
from a static instance start offset, and then asks the Objective-C
runtime to slide the offsets based on the dynamic superclass size.
So if the class has a field of generic type, the alignment of that
type can change the offsets of fields *before* it as well as after.
So we cannot assuem that any fields in such a class have the same
offset across instantiations at all.
The previous fix captured the intent of the above, but it only
kicked in if the immediate superclass of the class was imported
from Objective-C. But really we need to do this for any class with
Objective-C ancestry.
While fixing this, re-organize the code in ClassLayoutBuilder a
little bit to untangle the stored property iteration from the
interesting FieldAccess adjustments that take place after.
2018-08-07 04:26:43 -07:00
..
2018-07-25 03:39:58 -04:00
2018-08-02 02:10:17 -07:00
2018-06-19 23:24:19 -07:00
2017-08-30 14:24:16 -07:00
2017-11-28 11:36:00 -08:00
2017-06-04 11:08:39 -07:00
2017-04-13 15:34:32 -07:00
2018-07-07 01:29:43 +09:00
2017-06-04 11:08:39 -07:00
2017-06-04 11:08:39 -07:00
2017-06-04 11:08:39 -07:00
2017-06-04 11:08:39 -07:00
2018-04-05 13:04:27 -07:00
2018-03-01 14:31:43 -08:00
2018-04-10 00:00:45 -07:00
2017-08-15 13:43:57 -07:00
2017-11-28 20:01:00 -08:00
2018-01-31 08:11:42 -08:00
2017-06-04 11:08:39 -07:00
2017-12-18 22:54:31 -08:00
2018-03-06 14:30:54 -08:00
2017-12-18 22:54:31 -08:00
2018-02-02 16:41:28 -08:00
2018-07-04 20:58:21 -07:00
2018-06-13 18:41:20 -07:00
2017-08-30 14:24:16 -07:00
2017-05-03 08:06:12 -07:00
2018-01-16 23:12:28 -08:00
2017-01-09 21:46:45 -08:00
2018-05-09 22:52:42 -07:00
2018-07-16 17:38:00 -07:00
2018-06-01 09:31:56 -07:00
2017-10-09 15:39:40 -07:00
2018-06-25 15:03:28 -07:00
2017-08-15 13:43:57 -07:00
2018-07-11 08:44:03 -07:00
2018-06-27 13:05:36 -07:00
2017-06-04 11:08:39 -07:00
2017-04-21 20:45:28 -07:00
2017-10-20 16:10:32 -07:00
2018-01-12 13:00:13 -08:00
2018-06-19 23:24:19 -07:00
2017-06-04 11:08:39 -07:00
2017-10-12 15:58:19 -07:00
2018-02-06 08:51:43 -08:00
2017-12-19 18:58:53 -08:00
2018-07-23 18:59:58 -04:00
2018-05-30 15:07:22 -07:00
2017-06-04 11:08:39 -07:00
2017-06-04 11:08:39 -07:00
2018-08-07 04:26:43 -07:00
2017-06-01 04:40:52 -07:00
2017-06-04 11:08:39 -07:00
2017-02-26 22:17:30 -08:00
2017-10-02 19:11:13 -07:00
2017-06-04 11:08:39 -07:00
2018-06-27 13:05:36 -07:00
2018-06-27 13:05:36 -07:00
2017-06-04 11:08:39 -07:00
2017-04-20 09:35:06 -07:00
2017-07-11 17:00:36 -07:00
2018-04-01 19:23:57 -04:00
2018-02-28 14:15:39 -08:00
2017-06-04 11:08:39 -07:00
2017-06-04 11:08:39 -07:00
2018-06-27 13:05:36 -07:00
2018-06-27 13:05:36 -07:00
2017-11-01 15:58:23 -07:00
2017-11-01 15:58:23 -07:00
2017-06-04 11:08:39 -07:00
2017-10-21 01:42:51 -07:00
2018-07-27 22:55:22 -04:00
2018-06-15 12:04:43 -04:00
2017-10-20 16:10:33 -07:00
2018-03-06 14:30:54 -08:00
2018-07-11 14:33:23 -04:00
2018-07-11 14:33:23 -04:00
2017-06-04 11:08:39 -07:00
2017-07-11 17:00:36 -07:00
2017-12-21 17:28:52 -08:00
2018-03-06 14:30:54 -08:00
2018-03-08 10:37:27 -07:00
2017-03-10 12:50:43 -08:00
2017-11-16 14:11:52 -08:00
2017-06-04 11:08:39 -07:00
2017-06-04 11:08:39 -07:00
2017-04-19 11:06:26 -07:00
2018-03-07 16:44:43 +00:00
2018-07-25 15:21:55 -04:00
2017-06-22 10:28:35 -07:00
2018-06-19 23:24:19 -07:00
2017-04-21 20:45:28 -07:00
2018-06-27 13:02:58 -07:00
2017-10-09 15:39:40 -07:00
2017-10-02 19:11:13 -07:00
2017-10-13 23:51:14 -07:00
2018-03-06 14:30:54 -08:00
2018-03-06 14:30:54 -08:00
2018-04-12 10:50:31 -07:00
2017-04-14 11:58:38 -07:00
2018-01-17 21:02:08 -08:00
2018-05-09 09:55:41 +10:00
2017-06-04 11:08:39 -07:00
2017-10-20 16:10:33 -07:00
2017-04-13 08:43:28 -07:00
2018-07-07 01:29:43 +09:00
2017-04-13 08:43:28 -07:00
2017-04-21 20:45:28 -07:00
2018-02-05 18:12:58 -08:00
2017-08-02 07:12:47 -07:00
2018-07-25 03:39:58 -04:00
2018-05-14 14:07:19 -07:00
2017-06-04 11:08:39 -07:00
2018-03-07 09:00:12 -08:00
2018-05-15 08:02:39 -07:00