scudo: Shrink secondary header and cache entry size by a word on Linux. NFCI.
Normally compilers will allocate space for struct fields even if the
field is an empty struct. Use the [[no_unique_address]] attribute to
suppress that behavior. This attribute that was introduced in C++20,
but compilers that do not support [[no_unique_address]] will ignore
it since it uses C++11 attribute syntax.
Differential Revision: https://reviews.llvm.org/D92966
GitOrigin-RevId: a7790508522fc277963df974dc953077778e3c11
diff --git a/secondary.h b/secondary.h
index eda8886..ff41bd3 100644
--- a/secondary.h
+++ b/secondary.h
@@ -31,7 +31,7 @@
uptr BlockEnd;
uptr MapBase;
uptr MapSize;
- MapPlatformData Data;
+ [[no_unique_address]] MapPlatformData Data;
};
constexpr uptr getHeaderSize() {
@@ -232,7 +232,7 @@
uptr BlockEnd;
uptr MapBase;
uptr MapSize;
- MapPlatformData Data;
+ [[no_unique_address]] MapPlatformData Data;
u64 Time;
};