From 8f4fcc62cf9b92680bed46655653f224190bfce3 Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Thu, 27 Jul 2023 08:44:56 -0700 Subject: InlinedVector: Disable CFI checking during the reinterpret_cast on the heap allocation path. The cast occurs before the memory is initialized. See also: https://clang.llvm.org/docs/ControlFlowIntegrity.html#bad-cast-checking. PiperOrigin-RevId: 551542366 Change-Id: Id5834892c36a5cb8ec095bcfee3e9e31f20c48ae --- absl/container/inlined_vector_test.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'absl') diff --git a/absl/container/inlined_vector_test.cc b/absl/container/inlined_vector_test.cc index 5acad650..d9946b2a 100644 --- a/absl/container/inlined_vector_test.cc +++ b/absl/container/inlined_vector_test.cc @@ -1632,6 +1632,13 @@ TEST(DynamicVec, EmplaceBack) { EXPECT_EQ(v.size(), 1u); } +TEST(DynamicVec, EmplaceBackAfterHeapAllocation) { + DynamicVec v; + v.reserve(10); + v.emplace_back(Dynamic{}); + EXPECT_EQ(v.size(), 1u); +} + TEST(AllocatorSupportTest, Constructors) { using MyAlloc = CountingAllocator; using AllocVec = absl::InlinedVector; -- cgit v1.2.3