gcc/libstdc++-v3/testsuite
Patrick Palka 361e32eeaa libstdc++: Rearrange some range adaptors' data members
Since the standard range adaptors are specified to derive from the empty
class view_base, having their first data member store the underlying
view is suboptimal, for if the underlying view also derives from
view_base then the two view_base subobjects will be adjacent; this
prevents the compiler from applying the empty base optimization to elide
away the storage for these two empty bases.

This patch improves the situation by declaring the _M_base data member
last instead of first in each range adaptor that has more than one data
member, so that the empty base optimization can apply in more cases.

libstdc++-v3/ChangeLog:

	* include/std/ranges (filter_view): Declare the data member
	_M_base last instead of first, and adjust constructors' member
	initializer lists accordingly.
	(transform_view): Likewise.
	(take_view): Likewise.
	(take_while_view): Likewise.
	(drop_view): Likewise.
	(drop_while_view): Likewise.
	(join_view): Likewise.
	(split_view): Likewise (and tweak nearby formatting).
	(reverse_view): Likewise.
	* testsuite/std/ranges/adaptors/sizeof.cc: Update expected
	sizes.
2020-09-28 12:05:32 -04:00
..
17_intro libstdc++: Do not check "cold" name on darwin [PR 96736] 2020-08-21 18:24:40 +01:00
18_support libstdc++: Use __libc_single_threaded to optimise atomics [PR 96817] 2020-09-26 20:32:36 +01:00
19_diagnostics libstdc++: Ensure c++NN effective target present in all C++17 tests 2020-07-31 19:58:02 +01:00
20_util libstdc++: assert that type traits are not misused with incomplete types [PR 71579] 2020-09-24 18:51:37 +01:00
21_strings libstdc++: Remove tests for self-move debug assertions 2020-08-25 16:36:01 +01:00
22_locale
23_containers libstdc++: Remove overzealous static_asserts from std::span 2020-09-21 23:21:34 -04:00
24_iterators libstdc++: Introduce new headers for C++20 ranges components 2020-09-22 15:45:54 +01:00
25_algorithms libstdc++: Fix division by zero in std::sample 2020-09-21 20:48:23 -04:00
26_numerics libstdc++: Optimise GCD algorithms 2020-09-03 12:46:13 +01:00
27_io libstdc++: Fix out-of-bounds string_view access in filesystem::path [PR 97167] 2020-09-22 20:02:58 +01:00
28_regex libstdc++: Ensure c++NN effective-target present in more tests 2020-07-31 19:58:03 +01:00
29_atomics libstdc++: Ensure c++NN effective target present in all C++17 tests 2020-07-31 19:58:02 +01:00
30_threads libstdc++: Avoid rounding errors on custom clocks in condition_variable 2020-09-11 14:28:50 +01:00
abi
backward
config
data
decimal
experimental libstdc++: Optimise GCD algorithms 2020-09-03 12:46:13 +01:00
ext
lib diagnostics: Add new option -fdiagnostics-plain-output 2020-08-14 09:29:19 -04:00
libstdc++-abi
libstdc++-dg
libstdc++-prettyprinters libstdc++: Remove inheritance from elements in std::tuple 2020-08-17 15:27:51 +01:00
libstdc++-xmethods
performance
special_functions
std libstdc++: Rearrange some range adaptors' data members 2020-09-28 12:05:32 -04:00
tr1 libstdc++: Ensure c++NN effective-target present in more tests 2020-07-31 19:58:03 +01:00
tr2
util libstdc++: Make testsuite usable with -fno-exceptions 2020-07-30 12:50:02 +01:00
Makefile.am libstdc++: Enable simple invocation of runtest in testsuite 2020-05-21 14:16:19 +01:00
Makefile.in libstdc++: Regenerate makefiles 2020-06-23 07:59:40 +01:00