Volodymyr Sapsai
d32c685e10
[modules] Merge equivalent extensions and diagnose ivar redeclarations for extensions loaded from different modules.
...
Emitting metadata for the same ivar multiple times can lead to
miscompilations. Objective-C runtime adds offsets to calculate ivar
position in memory and presence of duplicate offsets causes wrong final
position thus overwriting unrelated memory.
Such a situation is impossible with modules disabled as clang diagnoses
ivar redeclarations during sema checks after parsing
(`Sema::ActOnFields`). Fix the case with modules enabled by checking
during deserialization if ivar is already declared. We also support
a use case where the same category ends up in multiple modules. We
don't want to treat this case as ivar redeclaration and instead merge
corresponding ivars.
rdar://83468070
Differential Revision: https://reviews.llvm.org/D121177
2022-04-27 15:52:59 -07:00
..
2022-04-19 14:48:42 -07:00
2022-03-07 11:21:21 +01:00
2017-12-22 02:53:30 +00:00
2017-10-11 01:49:57 +00:00
2017-10-10 22:33:17 +00:00
2017-01-26 23:07:59 +00:00
2022-01-11 11:48:40 -08:00
2020-06-19 09:41:15 +01:00
2022-02-10 16:06:03 -05:00
2022-02-10 16:06:03 -05:00
2022-02-10 16:06:03 -05:00
2022-02-10 16:06:03 -05:00
2018-07-18 23:21:19 +00:00
2018-03-20 22:36:39 +00:00
2019-09-27 05:37:06 +00:00
2022-02-10 16:06:03 -05:00
2019-07-10 00:30:02 +00:00
2021-10-25 23:32:13 -04:00
2018-04-27 18:01:23 +00:00
2022-01-16 18:54:17 +09:00
2020-01-14 23:39:50 +01:00
2017-04-12 20:58:33 +00:00
2017-04-12 21:09:34 +00:00
2022-04-07 12:09:47 +02:00
2022-04-07 12:09:47 +02:00
2019-05-13 22:40:11 +00:00
2016-10-31 08:21:54 +00:00
2021-12-22 11:50:47 +08:00
2022-04-20 11:30:12 -04:00
2016-12-06 00:40:17 +00:00
2017-06-22 22:18:46 +00:00
2020-07-07 17:13:23 -06:00
2017-08-15 19:47:06 +00:00
2019-10-14 01:41:56 +00:00
2019-10-14 01:41:56 +00:00
2019-12-03 15:44:01 -08:00
2019-10-14 01:41:56 +00:00
2019-10-14 01:41:56 +00:00
2019-10-14 01:41:56 +00:00
2019-10-14 01:41:56 +00:00
2019-10-14 01:41:56 +00:00
2019-10-14 01:41:56 +00:00
2019-10-14 01:41:56 +00:00
2019-10-14 01:41:56 +00:00
2022-02-10 16:06:03 -05:00
2018-05-03 03:58:32 +00:00
2017-11-02 01:06:00 +00:00
2020-06-12 10:29:01 -07:00
2022-02-25 09:33:14 +00:00
2022-04-21 11:09:55 +08:00
2022-04-08 08:57:37 +01:00
2022-04-11 11:30:45 +01:00
2022-04-08 10:57:27 -07:00
2022-04-08 10:57:27 -07:00
2022-04-08 08:57:37 +01:00
2022-04-08 10:57:27 -07:00
2022-04-08 10:57:27 -07:00
2022-02-26 11:27:08 +00:00
2022-02-26 11:27:08 +00:00
2021-08-04 13:46:40 +02:00
2022-01-24 09:59:20 +01:00
2022-03-25 09:17:14 +00:00
2022-03-26 10:17:17 +00:00
2022-03-26 10:17:17 +00:00
2022-04-03 11:39:00 +01:00
2022-03-27 09:38:06 +01:00
2022-03-28 07:38:22 +01:00
2022-03-26 10:17:17 +00:00
2022-02-26 11:27:08 +00:00
2022-02-23 10:26:42 +00:00
2022-02-24 09:01:09 +00:00
2022-02-24 09:01:09 +00:00
2020-06-12 10:29:01 -07:00
2018-07-04 02:25:38 +00:00
2022-01-16 18:54:17 +09:00
2021-10-21 11:34:43 -07:00
2021-10-25 23:32:13 -04:00
2021-09-16 14:04:42 -04:00
2019-02-15 20:24:26 +00:00
2021-09-16 14:04:42 -04:00
2021-10-08 12:06:38 -04:00
2021-09-16 14:04:42 -04:00
2022-02-10 16:06:03 -05:00
2021-10-21 12:08:06 -07:00
2019-09-10 20:15:45 +00:00
2019-09-10 20:15:45 +00:00
2018-02-09 01:15:13 +00:00
2017-01-26 01:01:01 +00:00
2022-04-20 11:30:12 -04:00
2017-03-13 18:45:08 +00:00
2020-08-25 16:31:27 -07:00
2022-04-07 12:09:47 +02:00
2022-02-10 16:06:03 -05:00
2017-07-01 00:06:47 +00:00
2016-07-21 21:07:47 +00:00
2020-06-15 12:27:25 +01:00
2019-05-22 21:58:17 +00:00
2020-01-27 22:08:37 -05:00
2021-08-06 14:48:28 +02:00
2016-10-20 23:11:45 +00:00
2016-06-23 15:07:32 +00:00
2022-02-23 14:46:23 +01:00
2016-08-29 20:46:59 +00:00
2017-09-14 23:38:44 +00:00
2022-01-14 10:21:42 +08:00
2021-09-16 14:04:42 -04:00
2021-09-16 14:04:42 -04:00
2022-02-10 16:06:03 -05:00
2017-05-18 19:34:55 +00:00
2017-05-09 00:41:38 +00:00
2021-10-15 12:46:51 -07:00
2021-11-24 14:03:49 -05:00
2022-02-10 16:06:03 -05:00
2019-02-05 12:05:53 +00:00
2018-12-06 09:35:04 +00:00
2020-03-03 14:14:24 -08:00
2016-05-03 23:06:40 +00:00
2022-02-10 16:06:03 -05:00
2016-09-01 20:15:25 +00:00
2017-03-06 17:47:57 +00:00
2017-06-02 01:55:39 +00:00
2017-01-26 23:07:59 +00:00
2019-01-29 19:33:48 +00:00
2017-04-12 03:58:58 +00:00
2020-03-10 10:59:26 -07:00
2019-09-10 20:15:45 +00:00
2017-12-22 05:04:43 +00:00
2022-02-11 11:22:50 +08:00
2021-08-16 16:23:04 -07:00
2017-12-22 02:53:30 +00:00
2017-12-22 02:53:30 +00:00
2018-06-15 20:13:28 +00:00
2020-02-28 15:40:24 -08:00
2022-02-10 16:06:03 -05:00
2020-08-20 17:41:28 -07:00
2017-04-29 00:34:47 +00:00
2017-01-11 02:14:51 +00:00
2017-01-11 02:14:51 +00:00
2022-02-10 16:06:03 -05:00
2018-06-01 01:26:18 +00:00
2016-10-21 23:27:37 +00:00
2020-09-18 14:56:47 -07:00
2022-02-10 16:06:03 -05:00
2020-08-21 14:40:09 -04:00
2022-04-07 12:09:47 +02:00
2017-08-11 12:06:52 +00:00
2021-10-21 12:08:06 -07:00
2017-06-26 04:41:22 +00:00
2017-02-07 21:54:57 +00:00
2020-12-30 20:52:01 -08:00
2016-08-25 00:34:00 +00:00
2016-10-21 01:41:56 +00:00
2021-04-16 17:57:03 -07:00
2018-06-07 03:20:30 +00:00
2017-04-24 21:58:13 +00:00
2017-06-29 19:42:35 +00:00
2016-09-09 23:48:27 +00:00
2021-11-03 17:11:14 -07:00
2021-11-01 17:08:26 -07:00
2021-03-23 16:54:28 -07:00
2017-05-19 23:32:38 +00:00
2022-02-10 16:06:03 -05:00
2022-02-10 16:06:03 -05:00
2022-02-24 15:30:30 -05:00
2017-10-24 14:52:35 +00:00
2022-04-04 18:48:30 -07:00
2018-08-03 01:00:01 +00:00
2022-04-27 15:52:59 -07:00
2022-02-10 16:06:03 -05:00
2017-01-26 23:07:59 +00:00
2019-02-05 12:05:53 +00:00
2020-01-27 22:08:37 -05:00
2017-01-26 22:39:55 +00:00
2021-11-01 13:44:23 +00:00
2021-10-08 14:00:06 +00:00
2021-11-11 15:51:19 +00:00
2021-09-16 14:04:42 -04:00
2021-09-16 14:04:42 -04:00
2021-09-16 14:04:42 -04:00
2018-07-04 02:25:38 +00:00
2018-05-24 20:03:51 +00:00
2018-09-12 02:13:46 +00:00
2018-09-12 23:37:00 +00:00
2016-10-17 13:00:44 +00:00
2022-04-19 14:48:42 -07:00
2021-07-01 18:43:49 -07:00
2016-10-19 11:19:30 +00:00
2021-11-03 17:11:14 -07:00
2016-04-29 19:04:05 +00:00
2018-11-09 02:44:07 +00:00
2017-07-06 21:05:56 +00:00
2020-04-17 22:49:58 -07:00
2022-02-10 16:06:03 -05:00
2018-01-09 09:32:53 +00:00
2021-09-16 14:04:42 -04:00
2017-03-09 00:58:22 +00:00
2021-10-25 23:32:13 -04:00
2016-10-21 23:35:03 +00:00
2017-06-12 20:10:48 +00:00
2017-11-17 04:26:07 +00:00
2022-02-10 16:06:03 -05:00
2022-02-10 16:06:03 -05:00
2021-10-18 11:50:29 +02:00
2021-06-14 11:04:56 +02:00
2020-07-28 10:30:35 +01:00
2021-12-22 11:09:41 +08:00
2021-12-23 21:14:13 +08:00
2022-01-10 16:13:40 -08:00
2021-10-25 23:32:13 -04:00
2021-09-16 14:04:42 -04:00
2022-04-20 11:30:12 -04:00
2021-09-16 14:04:42 -04:00
2017-08-15 19:47:06 +00:00
2020-04-28 18:41:14 -07:00
2020-08-13 10:06:40 -04:00
2019-04-19 23:04:05 +00:00
2018-06-28 01:57:04 +00:00
2020-04-28 18:41:14 -07:00
2016-08-03 06:10:15 +00:00
2020-06-04 08:33:39 +02:00
2022-02-10 16:06:03 -05:00
2022-02-10 16:06:03 -05:00
2017-05-17 11:08:36 +00:00
2017-02-22 23:18:49 +00:00
2016-09-09 23:48:27 +00:00
2016-09-09 23:48:27 +00:00
2016-09-09 23:48:27 +00:00
2017-04-26 05:06:20 +00:00
2016-10-11 21:18:20 +00:00
2022-04-07 12:09:47 +02:00
2020-01-27 22:08:37 -05:00
2020-02-12 18:44:19 -05:00
2018-09-04 22:53:19 +00:00
2018-06-28 13:28:44 +00:00
2018-09-05 22:14:46 +00:00
2018-09-05 22:14:46 +00:00
2018-01-06 03:20:59 +00:00
2018-09-04 22:53:19 +00:00
2018-09-04 22:53:19 +00:00
2022-03-21 13:21:25 +02:00
2021-10-20 18:48:29 -07:00
2021-12-22 11:50:47 +08:00
2017-12-21 21:47:22 +00:00
2022-02-10 16:06:03 -05:00
2022-02-10 16:06:03 -05:00
2019-03-09 17:33:56 +00:00
2017-02-24 02:49:47 +00:00
2017-07-25 10:22:06 +00:00
2020-02-12 08:17:01 -08:00
2016-05-31 18:19:32 +00:00
2021-10-13 18:09:52 +02:00
2022-02-10 16:06:03 -05:00
2017-01-09 19:20:18 +00:00
2018-07-04 02:25:38 +00:00
2016-04-26 23:40:43 +00:00
2016-07-22 20:49:31 +00:00
2016-05-24 12:10:36 +00:00
2016-05-17 22:44:15 +00:00
2016-06-20 15:10:40 +00:00
2016-07-22 21:08:24 +00:00
2016-08-18 06:15:19 +00:00
2016-10-14 21:41:24 +00:00
2016-10-26 10:24:29 +00:00
2017-01-12 09:16:26 +00:00
2017-04-15 00:07:57 +00:00
2022-02-10 16:06:03 -05:00
2022-02-10 16:06:03 -05:00
2017-06-09 21:24:02 +00:00
2017-07-06 21:05:56 +00:00
2017-06-29 02:19:42 +00:00
2017-06-02 01:55:39 +00:00
2019-09-18 19:09:41 +00:00
2021-02-01 19:46:23 -08:00
2019-05-08 02:03:32 +00:00
2017-05-30 20:13:34 +00:00
2017-04-29 00:34:47 +00:00
2017-04-29 00:34:47 +00:00
2018-06-30 00:49:27 +00:00
2018-12-05 11:17:50 +00:00
2017-03-13 18:45:08 +00:00
2022-04-27 15:52:59 -07:00
2022-02-10 16:06:03 -05:00
2017-12-22 02:53:30 +00:00
2017-07-01 00:06:47 +00:00
2016-12-06 00:14:22 +00:00
2018-09-13 14:27:32 +00:00
2019-03-11 10:44:10 +00:00
2022-02-10 16:06:03 -05:00
2017-12-22 02:53:30 +00:00
2017-06-05 18:57:56 +00:00
2018-02-14 19:01:03 +00:00
2017-12-22 02:53:30 +00:00
2018-08-01 09:50:02 +00:00
2019-03-06 02:50:46 +00:00
2019-03-06 05:42:56 +00:00
2022-03-31 11:21:58 +08:00
2018-03-23 00:16:06 +00:00
2020-11-18 11:55:29 -08:00
2018-01-05 02:33:18 +00:00
2018-01-05 02:33:18 +00:00
2016-10-20 23:11:45 +00:00
2016-09-13 01:20:40 +00:00
2020-04-28 18:41:14 -07:00
2022-02-10 16:06:03 -05:00
2016-11-17 18:41:18 +00:00
2018-11-05 12:46:02 +00:00
2017-06-19 23:09:36 +00:00
2019-11-14 18:32:27 -08:00
2022-02-10 16:06:03 -05:00
2017-12-22 02:53:30 +00:00
2022-02-10 16:06:03 -05:00
2018-05-02 02:25:03 +00:00
2020-04-28 18:41:14 -07:00
2020-04-28 18:41:14 -07:00
2020-04-28 18:41:14 -07:00
2020-04-28 18:41:14 -07:00
2022-02-10 16:06:03 -05:00
2020-04-28 18:41:14 -07:00
2017-03-20 17:58:26 +00:00
2020-04-28 18:41:14 -07:00
2020-04-28 18:41:14 -07:00
2021-11-24 14:03:49 -05:00
2018-09-18 17:11:13 +00:00
2022-01-11 10:16:26 +08:00
2020-04-28 18:41:14 -07:00
2022-04-07 12:09:47 +02:00
2017-01-12 19:15:33 +00:00
2022-02-10 16:06:03 -05:00
2019-09-27 05:37:06 +00:00
2018-09-12 23:09:23 +00:00
2020-04-28 18:41:14 -07:00
2016-07-20 19:10:16 +00:00
2016-05-17 02:15:12 +00:00
2021-09-16 14:04:42 -04:00
2018-01-06 01:07:05 +00:00
2018-01-06 00:09:23 +00:00
2020-01-27 22:08:37 -05:00
2017-10-30 22:38:20 +00:00
2017-10-11 01:19:11 +00:00
2021-11-24 14:03:49 -05:00
2019-10-15 14:23:55 +00:00
2020-02-03 10:09:39 -08:00
2020-04-28 18:41:14 -07:00
2017-03-20 17:58:26 +00:00
2022-02-10 16:06:03 -05:00