Mark de Wever
e09761944c
[libc++] Improves UB handling in ios_base destructor. ( #76525 )
...
Destroying an ios_base object before it is properly initialized is
undefined behavior. Unlike typical C++ classes the initialization is not
done in the constructor, but in a dedicated init function. Due to
virtual inheritance of the basic_ios object in ostream and friends this
undefined behaviour can be triggered when inheriting from classes that
can throw in their constructor and inheriting from ostream.
Use the __loc_ member of ios_base as sentinel to detect whether the
object has or has not been initialized.
Addresses https://github.com/llvm/llvm-project/issues/57964
2024-03-12 18:04:14 +01:00
..
2024-02-20 01:47:38 +01:00
2024-03-02 14:50:52 +00:00
2024-01-20 23:38:02 -08:00
2024-02-29 10:12:22 -05:00
2024-02-17 14:28:01 +01:00
2024-02-08 19:23:10 +01:00
2024-01-15 00:00:57 +02:00
2024-01-30 08:35:15 -05:00
2024-01-22 18:12:58 -08:00
2024-01-22 23:31:58 -08:00
2024-03-11 10:59:05 -04:00
2024-01-22 09:05:39 -05:00
2024-03-03 20:45:17 +01:00
2024-03-08 20:43:10 +01:00
2024-03-03 20:45:17 +01:00
2024-03-09 12:49:36 +01:00
2023-12-18 14:01:33 -05:00
2024-03-11 20:40:47 -07:00
2024-02-11 19:43:34 +01:00
2023-08-03 08:51:50 -07:00
2023-12-10 11:52:14 +01:00
2024-02-20 01:47:38 +01:00
2024-01-22 18:12:58 -08:00
2024-01-30 08:35:15 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-05 12:04:07 -05:00
2024-01-26 22:08:36 +01:00
2024-03-03 20:45:17 +01:00
2024-03-11 14:04:51 +01:00
2024-03-07 12:32:25 +01:00
2024-03-09 11:21:47 +01:00
2023-12-18 14:01:33 -05:00
2024-03-03 20:45:17 +01:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-07 15:12:21 -05:00
2024-02-05 17:41:12 +01:00
2024-03-09 01:09:28 +01:00
2023-12-13 06:05:34 +01:00
2024-03-11 18:39:21 -07:00
2024-02-03 20:50:06 +01:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2023-11-27 10:54:35 -05:00
2024-02-20 01:47:38 +01:00
2023-07-06 17:21:08 +00:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-04 18:23:53 -05:00
2024-03-04 18:24:51 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-11 14:04:51 +01:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2024-03-03 20:45:17 +01:00
2023-12-18 14:01:33 -05:00
2024-03-08 20:43:10 +01:00
2024-02-29 10:12:22 -05:00
2024-03-03 13:23:41 +01:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2024-03-12 18:04:14 +01:00
2024-03-04 18:16:52 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-02 14:50:52 +00:00
2024-03-11 14:04:51 +01:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2023-12-10 11:52:14 +01:00
2024-02-29 10:12:22 -05:00
2023-10-29 18:31:37 +01:00
2024-03-11 14:04:51 +01:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-03 20:45:17 +01:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-02 14:50:52 +00:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2023-12-06 09:04:06 -05:00
2024-03-09 12:49:36 +01:00
2024-03-05 08:49:49 +02:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-11 16:28:05 -04:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2023-11-08 17:45:06 +01:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-11 14:04:51 +01:00
2024-03-03 20:45:17 +01:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2023-12-18 14:01:33 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-02-29 10:12:22 -05:00
2024-03-11 14:04:51 +01:00
2024-02-29 10:12:22 -05:00
2024-03-05 08:49:49 +02:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00