Corentin Jabot
ca61961380
Implement CWG2631
...
Implement https://cplusplus.github.io/CWG/issues/2631.html .
Immediate calls in default arguments and defaults members
are not evaluated.
Instead, we evaluate them when constructing a
`CXXDefaultArgExpr`/`BuildCXXDefaultInitExpr`.
The immediate calls are executed by doing a
transform on the initializing expression.
Note that lambdas are not considering subexpressions so
we do not need to transform them.
As a result of this patch, unused default member
initializers are not considered odr-used, and
errors about members binding to local variables
in an outer scope only surface at the point
where a constructor is defined.
Reviewed By: aaron.ballman, #clang-language-wg, rupprecht
Differential Revision: https://reviews.llvm.org/D136554
2023-01-08 10:35:26 +01:00
..
2022-11-07 13:50:08 -08:00
2021-11-04 11:53:47 +08:00
2022-12-12 17:09:26 -08:00
2020-06-21 13:59:11 +01:00
2021-03-23 13:15:19 -04:00
2021-06-30 09:58:06 -04:00
2022-08-12 00:05:59 +01:00
2020-06-21 13:59:11 +01:00
2022-07-27 11:10:54 +02:00
2021-10-21 11:34:43 -07:00
2021-10-21 11:34:43 -07:00
2022-07-27 11:10:54 +02:00
2020-07-08 16:39:11 +01:00
2022-07-27 11:10:54 +02:00
2020-07-08 16:39:11 +01:00
2020-06-21 13:59:11 +01:00
2021-12-31 01:30:39 +01:00
2021-10-28 00:25:02 +02:00
2021-10-28 00:25:02 +02:00
2021-10-28 00:25:02 +02:00
2021-10-21 11:34:43 -07:00
2022-02-10 20:39:20 -06:00
2022-05-13 13:48:46 +02:00
2022-10-27 06:18:53 +02:00
2022-07-21 09:17:01 +01:00
2021-05-20 17:04:29 -04:00
2022-02-10 20:39:20 -06:00
2022-02-24 15:30:30 -05:00
2022-02-10 20:39:20 -06:00
2020-06-21 13:59:11 +01:00
2022-02-24 15:30:30 -05:00
2022-11-24 12:44:35 +00:00
2022-02-09 09:11:49 -05:00
2022-04-04 18:48:30 -07:00
2021-06-10 14:51:08 +02:00
2022-02-10 20:39:20 -06:00
2022-02-10 20:39:20 -06:00
2022-07-27 11:10:54 +02:00
2022-02-24 15:30:13 -05:00
2021-10-21 11:34:43 -07:00
2022-07-27 11:10:54 +02:00
2022-10-31 19:34:23 +01:00
2022-09-16 16:36:00 +02:00
2022-02-10 20:39:20 -06:00
2022-03-21 13:39:44 -04:00
2023-01-04 22:39:04 +02:00
2022-02-10 20:39:20 -06:00
2021-06-10 10:18:52 +01:00
2022-05-25 15:14:35 +02:00
2022-01-10 10:38:27 +01:00
2020-07-02 14:13:35 +01:00
2022-07-21 09:17:01 +01:00
2022-02-10 20:39:20 -06:00
2021-01-22 11:43:58 -05:00
2020-06-21 13:59:11 +01:00
2022-11-24 12:44:35 +00:00
2022-02-10 20:39:20 -06:00
2020-08-07 09:58:23 -04:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-09-04 05:29:32 +00:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2020-06-12 15:21:38 +02:00
2022-02-09 09:11:49 -05:00
2022-10-15 22:08:36 +02:00
2020-06-23 14:43:04 -07:00
2020-09-16 13:37:10 -05:00
2022-09-04 05:29:32 +00:00
2021-10-27 21:04:32 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-09-15 03:08:46 +00:00
2022-09-15 03:08:46 +00:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2022-02-09 09:11:49 -05:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2021-02-22 14:16:43 -08:00
2022-02-09 09:11:49 -05:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2022-02-09 09:11:49 -05:00
2021-02-22 14:16:43 -08:00
2022-09-15 03:08:46 +00:00
2022-09-15 03:08:46 +00:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2022-02-09 09:11:49 -05:00
2021-02-22 14:16:43 -08:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-09-15 03:08:46 +00:00
2022-09-15 03:08:46 +00:00
2021-02-22 14:16:43 -08:00
2021-02-22 14:16:43 -08:00
2022-02-09 09:11:49 -05:00
2022-10-31 19:34:23 +01:00
2020-06-19 13:40:20 +01:00
2021-10-05 07:59:32 -05:00
2022-07-03 17:06:26 +07:00
2022-10-31 19:34:23 +01:00
2020-06-19 13:40:20 +01:00
2022-10-31 19:34:23 +01:00
2021-10-21 11:34:43 -07:00
2023-01-08 10:35:26 +01:00
2020-10-12 11:24:45 +02:00
2022-09-22 14:23:47 +02:00
2020-10-27 09:42:19 +01:00
2020-06-19 13:40:20 +01:00
2022-02-24 15:30:13 -05:00
2022-07-27 11:10:54 +02:00
2022-02-24 15:30:13 -05:00
2022-09-21 19:37:22 +00:00
2022-07-27 11:10:54 +02:00
2022-02-09 09:11:49 -05:00
2022-10-31 19:34:23 +01:00
2022-11-08 17:19:54 +01:00
2021-11-14 21:09:11 -08:00
2022-07-27 11:10:54 +02:00
2022-10-31 19:34:23 +01:00
2022-02-10 20:39:20 -06:00
2020-06-19 08:45:46 +02:00
2022-02-10 20:39:20 -06:00
2022-09-04 05:29:32 +00:00
2022-10-12 19:54:51 +02:00
2022-07-27 11:10:54 +02:00
2022-07-27 11:10:54 +02:00
2020-06-19 13:40:20 +01:00
2020-06-19 13:40:20 +01:00
2020-06-19 13:40:20 +01:00
2021-02-03 11:41:38 -08:00
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-07-03 17:06:26 +07:00
2021-10-15 16:23:04 +00:00
2021-01-08 11:37:27 +00:00
2022-02-09 09:11:49 -05:00
2021-08-13 13:20:11 +03:00
2022-03-16 11:10:32 +01:00
2020-07-16 12:50:25 +02:00
2021-10-21 11:34:43 -07:00
2022-06-15 09:47:28 +02:00
2021-11-19 13:00:26 -08:00
2020-09-16 17:54:57 +00:00
2020-09-15 20:15:34 +00:00
2020-09-15 20:15:34 +00:00
2020-09-24 15:17:35 +00:00
2020-09-25 22:33:53 +00:00
2022-02-09 09:11:49 -05:00
2022-12-27 19:18:07 +00:00
2022-03-14 09:24:19 -04:00
2020-06-21 13:59:11 +01:00
2020-06-21 13:59:11 +01:00
2022-08-26 00:52:52 +03:00
2022-10-26 22:00:49 +00:00
2022-11-17 12:05:28 +07:00
2020-09-26 17:59:39 +07:00
2022-03-03 06:33:49 -08:00
2022-07-27 11:10:54 +02:00
2022-07-27 11:10:54 +02:00
2022-05-17 08:13:37 -04:00
2022-05-17 08:13:37 -04:00
2022-10-15 22:08:36 +02:00
2020-08-24 09:58:37 -04:00
2022-02-09 09:11:49 -05:00
2020-06-21 13:59:11 +01:00
2022-10-31 19:34:23 +01:00
2022-10-31 19:34:23 +01:00
2021-10-10 07:46:17 +05:30
2022-02-09 09:11:49 -05:00
2022-02-22 16:27:32 +01:00
2022-06-15 11:58:26 +02:00
2022-01-10 10:38:27 +01:00
2022-02-10 20:39:20 -06:00
2022-02-10 20:39:20 -06:00
2020-06-21 13:59:11 +01:00
2020-06-21 13:59:11 +01:00
2022-02-09 09:11:49 -05:00
2022-06-19 00:30:37 +03:00
2020-07-06 22:03:08 +01:00
2021-10-21 11:34:43 -07:00
2022-02-09 09:11:49 -05:00
2022-03-18 12:20:41 +00:00
2022-03-18 12:20:41 +00:00
2020-06-21 13:59:11 +01:00
2020-07-16 12:07:18 -07:00
2022-09-04 05:29:32 +00:00
2020-06-21 13:59:11 +01:00
2020-06-21 13:59:11 +01:00