Ryan Prichard
02a25279ae
[Frontend] Correct values of ATOMIC_*_LOCK_FREE to match builtin
...
Correct the logic used to set `ATOMIC_*_LOCK_FREE` preprocessor macros not
to rely on the ABI alignment of types. Instead, just assume all those
types are aligned correctly by default since clang uses safe alignment
for `_Atomic` types even if the underlying types are aligned to a lower
boundary by default.
For example, the `long long` and `double` types on x86 are aligned to
32-bit boundary by default. However, `_Atomic long long` and `_Atomic
double` are aligned to 64-bit boundary, therefore satisfying
the requirements of lock-free atomic operations.
This fixes PR #19355 by correcting the value of
`__GCC_ATOMIC_LLONG_LOCK_FREE` on x86, and therefore also fixing
the assumption made in libc++ tests. This also fixes PR #30581 by
applying a consistent logic between the functions used to implement
both interfaces.
Reviewed By: hfinkel, efriedma
Differential Revision: https://reviews.llvm.org/D28213
2022-07-21 17:23:29 -07:00
..
2022-04-22 16:37:20 +00:00
2019-04-11 21:18:22 +00:00
2021-11-05 00:43:40 -05:00
2022-06-28 16:01:30 -07:00
2021-06-23 07:40:38 -04:00
2022-05-13 20:34:57 +01:00
2021-08-18 07:33:14 -04:00
2022-05-06 13:46:49 +00:00
2021-10-17 09:23:43 -04:00
2013-03-05 22:51:04 +00:00
2012-10-19 12:44:48 +00:00
2016-04-20 01:02:18 +00:00
2021-07-25 23:30:57 -05:00
2022-04-06 11:37:37 +08:00
2022-04-12 13:29:46 -07:00
2022-07-21 17:23:29 -07:00
2009-12-15 20:14:24 +00:00
2009-12-15 20:14:24 +00:00
2009-12-15 20:14:24 +00:00
2009-12-15 20:14:24 +00:00
2009-12-15 20:14:24 +00:00
2009-12-15 20:14:24 +00:00
2017-07-14 09:23:40 +00:00
2013-04-10 21:10:39 +00:00
2009-12-15 20:14:24 +00:00
2015-06-26 17:49:10 +00:00
2009-12-15 20:14:24 +00:00
2016-11-17 22:45:31 +00:00
2016-11-17 22:45:31 +00:00
2016-11-17 22:45:31 +00:00
2016-11-17 22:45:31 +00:00
2009-12-15 20:14:24 +00:00
2009-12-15 22:01:24 +00:00
2022-05-12 09:26:44 -04:00
2018-09-13 21:10:08 +00:00
2021-10-09 08:20:20 -04:00
2009-12-15 20:14:24 +00:00
2016-01-19 15:15:31 +00:00
2016-04-16 00:07:09 +00:00
2009-12-15 20:14:24 +00:00
2012-10-19 12:44:48 +00:00
2022-05-12 09:26:44 -04:00
2022-02-12 07:25:06 -05:00
2022-05-19 11:34:42 -04:00
2019-10-29 14:44:38 -07:00
2022-05-11 15:05:55 -07:00
2022-06-03 17:54:03 -07:00
2021-07-25 23:30:57 -05:00
2022-06-29 19:36:22 +01:00
2009-12-15 20:14:24 +00:00
2007-07-19 00:07:36 +00:00
2021-10-17 07:54:48 -04:00
2021-10-17 07:54:48 -04:00
2021-10-17 07:54:48 -04:00
2021-10-17 07:54:48 -04:00
2019-11-25 17:35:12 -05:00
2019-03-19 01:51:19 +00:00
2022-05-19 11:34:42 -04:00
2021-07-25 23:30:57 -05:00
2009-12-15 20:14:24 +00:00
2021-12-23 10:17:08 -08:00
2022-04-12 13:29:46 -07:00
2022-05-12 09:26:44 -04:00
2022-05-12 09:26:44 -04:00
2012-10-01 23:39:44 +00:00
2018-07-25 19:16:26 +00:00
2009-12-15 20:14:24 +00:00
2011-07-11 14:53:27 +00:00
2009-12-15 20:14:24 +00:00
2019-08-09 19:49:14 +00:00
2019-05-27 19:15:30 +00:00
2019-02-05 22:34:55 +00:00
2009-12-15 20:14:24 +00:00
2019-03-21 20:42:13 +00:00
2022-06-27 11:37:40 +01:00
2022-04-22 02:03:55 -04:00
2022-04-06 11:37:37 +08:00
2022-02-23 15:00:18 -08:00
2022-02-23 15:00:18 -08:00
2022-04-22 02:03:55 -04:00
2022-02-23 15:00:18 -08:00
2022-02-23 15:00:18 -08:00
2021-08-16 18:34:29 +09:00
2022-07-21 17:23:29 -07:00
2022-07-12 11:14:56 -07:00
2016-04-05 08:36:47 +00:00
2016-04-05 08:36:47 +00:00
2021-04-01 09:47:56 +01:00
2021-06-01 20:45:10 -04:00
2021-07-25 23:30:57 -05:00
2022-05-11 06:42:00 -04:00
2022-05-11 06:42:00 -04:00
2021-04-21 13:34:33 +03:00
2021-04-26 22:04:29 +03:00
2014-02-04 19:18:32 +00:00
2010-03-26 17:49:16 +00:00
2021-01-27 10:59:57 -08:00
2022-05-12 09:26:44 -04:00
2013-07-04 16:16:58 +00:00
2012-07-11 19:58:23 +00:00
2018-04-06 15:14:32 +00:00
2013-05-25 01:35:18 +00:00
2009-12-15 20:14:24 +00:00
2011-07-07 03:40:37 +00:00
2012-10-19 12:44:48 +00:00
2022-05-04 08:35:47 -04:00
2009-12-15 20:14:24 +00:00
2011-06-14 18:19:37 +00:00
2009-12-15 20:14:24 +00:00
2014-02-04 19:18:28 +00:00
2022-02-12 07:25:06 -05:00
2014-04-04 00:17:16 +00:00
2021-07-25 23:30:57 -05:00
2022-05-12 09:26:44 -04:00
2021-01-27 12:34:43 -08:00
2022-04-30 10:03:51 -04:00
2015-08-01 02:55:59 +00:00
2021-11-30 15:06:04 -05:00
2021-11-30 15:06:04 -05:00
2019-11-04 12:49:19 -05:00
2022-03-23 14:49:17 +01:00
2013-01-28 20:55:54 +00:00
2021-07-25 23:30:57 -05:00
2021-07-28 22:50:54 -05:00
2016-10-25 10:13:10 +00:00
2011-08-30 23:07:51 +00:00
2011-08-30 23:07:51 +00:00
2013-09-04 04:12:25 +00:00
2013-02-08 22:30:31 +00:00
2009-12-15 20:14:24 +00:00
2016-06-23 15:07:32 +00:00
2017-04-29 00:34:47 +00:00
2013-04-29 17:31:48 +00:00
2013-02-22 18:35:59 +00:00
2022-02-12 07:25:06 -05:00
2019-12-03 16:43:35 -08:00
2022-06-24 08:03:42 -07:00
2022-05-13 06:39:47 -07:00
2019-09-27 05:37:06 +00:00
2021-06-23 13:26:03 +02:00
2022-06-02 07:52:26 -07:00
2022-02-02 11:16:11 -08:00
2022-04-21 19:58:22 +02:00
2014-10-27 20:02:19 +00:00
2022-03-28 16:16:17 -05:00
2022-02-23 22:28:29 -05:00
2015-06-24 22:02:16 +00:00
2021-12-02 12:09:20 -05:00
2021-08-25 12:48:59 -05:00
2021-08-25 12:48:59 -05:00
2021-07-25 23:30:57 -05:00
2021-08-25 12:48:59 -05:00
2017-10-16 23:07:15 +00:00
2020-02-14 19:41:01 +01:00
2022-06-28 12:43:26 +01:00
2022-03-16 12:17:52 +01:00
2021-08-25 12:48:59 -05:00
2021-03-03 08:48:27 -05:00
2021-03-03 08:48:27 -05:00
2019-11-12 12:45:18 +00:00
2016-04-01 19:02:20 +00:00
2019-08-01 09:10:37 +00:00
2021-07-25 23:30:57 -05:00
2022-06-10 13:32:19 -07:00
2022-05-16 15:46:59 -07:00
2021-05-18 10:34:14 -04:00
2016-05-06 21:17:32 +00:00
2015-08-31 21:48:52 +00:00
2021-08-18 07:33:14 -04:00
2022-07-14 07:50:58 +02:00
2012-06-06 17:25:21 +00:00
2021-09-23 16:15:40 -07:00
2022-02-12 07:25:06 -05:00
2021-08-18 07:33:14 -04:00
2016-04-05 08:36:47 +00:00
2022-03-07 16:45:42 -08:00
2021-08-20 11:10:53 -04:00
2021-08-01 19:08:13 -05:00
2022-07-06 07:17:47 -07:00