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
2022-12-12 17:09:26 -08:00
2022-08-12 00:05:59 +01:00
2022-07-27 11:10:54 +02:00
2022-07-27 11:10:54 +02:00
2022-07-27 11:10:54 +02: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
2022-02-10 20:39:20 -06:00
2022-02-24 15:30:30 -05:00
2022-02-10 20:39:20 -06: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
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
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
2022-05-25 15:14:35 +02:00
2022-07-21 09:17:01 +01:00
2022-02-10 20:39:20 -06:00
2022-11-24 12:44:35 +00:00
2022-02-10 20:39:20 -06: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
2022-02-09 09:11:49 -05:00
2022-10-15 22:08:36 +02: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
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
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-15 03:08:46 +00:00
2022-09-15 03:08:46 +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
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
2022-02-09 09:11:49 -05:00
2022-10-31 19:34:23 +01:00
2022-07-03 17:06:26 +07:00
2022-10-31 19:34:23 +01:00
2022-10-31 19:34:23 +01:00
2023-01-08 10:35:26 +01:00
2022-09-22 14:23:47 +02: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
2022-07-27 11:10:54 +02:00
2022-10-31 19:34:23 +01:00
2022-02-10 20:39:20 -06: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
2022-02-09 09:11:49 -05:00
2022-02-09 09:11:49 -05:00
2022-07-03 17:06:26 +07:00
2022-02-09 09:11:49 -05:00
2022-03-16 11:10:32 +01:00
2022-06-15 09:47:28 +02: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
2022-08-26 00:52:52 +03:00
2022-10-26 22:00:49 +00:00
2022-11-17 12:05:28 +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
2022-02-09 09:11:49 -05:00
2022-10-31 19:34:23 +01:00
2022-10-31 19:34:23 +01:00
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-02-10 20:39:20 -06:00
2022-02-10 20:39:20 -06:00
2022-02-09 09:11:49 -05:00
2022-06-19 00:30:37 +03: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
2022-09-04 05:29:32 +00:00