Skip to content

Commit 7032a0e

Browse files
Abseil Teamcopybara-github
authored andcommitted
No-op changes for internal experiment
PiperOrigin-RevId: 925032057 Change-Id: I8f3a4f5bb4f079211a6e1cc5dfc8c9683d11e53e
1 parent 89ffed9 commit 7032a0e

7 files changed

Lines changed: 84 additions & 22 deletions

File tree

CMake/AbseilDll.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ set(ABSL_INTERNAL_DLL_FILES
2222
"base/internal/dynamic_annotations.h"
2323
"base/internal/endian.h"
2424
"base/internal/errno_saver.h"
25+
"base/internal/hardening.cc"
2526
"base/internal/hardening.h"
2627
"base/internal/hide_ptr.h"
2728
"base/internal/iterator_traits.h"

absl/base/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ cc_library(
8080

8181
cc_library(
8282
name = "hardening",
83+
srcs = ["internal/hardening.cc"],
8384
hdrs = [
8485
"internal/hardening.h",
8586
],

absl/base/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ absl_cc_library(
6161
hardening
6262
HDRS
6363
"internal/hardening.h"
64+
SRCS
65+
"internal/hardening.cc"
6466
DEPS
6567
absl::config
6668
absl::core_headers

absl/base/internal/hardening.cc

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
//
2+
// Copyright 2026 The Abseil Authors.
3+
//
4+
// Licensed under the Apache License, Version 2.0 (the "License");
5+
// you may not use this file except in compliance with the License.
6+
// You may obtain a copy of the License at
7+
//
8+
// https://www.apache.org/licenses/LICENSE-2.0
9+
//
10+
// Unless required by applicable law or agreed to in writing, software
11+
// distributed under the License is distributed on an "AS IS" BASIS,
12+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
// See the License for the specific language governing permissions and
14+
// limitations under the License.
15+
16+
#include "absl/base/internal/hardening.h"
17+
18+
#include <atomic>
19+
20+
#include "absl/base/config.h"
21+
#include "absl/base/macros.h"
22+
23+
namespace absl {
24+
ABSL_NAMESPACE_BEGIN
25+
26+
namespace base_internal {
27+
28+
void SetAbslHardeningEnabled([[maybe_unused]] bool enabled) {
29+
}
30+
31+
} // namespace base_internal
32+
33+
ABSL_NAMESPACE_END
34+
} // namespace absl

absl/base/internal/hardening.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ ABSL_NAMESPACE_BEGIN
3232

3333
namespace base_internal {
3434

35+
void SetAbslHardeningEnabled(bool enabled);
36+
3537
// `HardeningAssert` performs runtime checks when Abseil Hardening is enabled,
3638
// even if `NDEBUG` is defined.
3739
//

absl/base/internal/hardening_test.cc

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,28 @@ bool IsHardenedSlow() {
4242
return hardened;
4343
}
4444

45-
TEST(HardeningTest, HardeningAssertSlow) {
45+
class HardeningTest : public testing::Test {
46+
public:
47+
~HardeningTest() override {
48+
absl::base_internal::SetAbslHardeningEnabled(true);
49+
}
50+
};
51+
52+
class HardeningDeathTest : public testing::Test {
53+
public:
54+
~HardeningDeathTest() override {
55+
absl::base_internal::SetAbslHardeningEnabled(true);
56+
}
57+
};
58+
59+
TEST_F(HardeningTest, HardeningAssertSlow) {
4660
absl::base_internal::HardeningAssertSlow(true);
4761
if (!IsHardenedSlow()) {
4862
absl::base_internal::HardeningAssertSlow(false);
4963
}
5064
}
5165

52-
TEST(HardeningDeathTest, HardeningAssertSlow) {
66+
TEST_F(HardeningDeathTest, HardeningAssertSlow) {
5367
#if GTEST_HAS_DEATH_TEST
5468
if (IsHardenedSlow()) {
5569
// The underlying mechanism of termination varies, and may include SIGILL
@@ -59,107 +73,114 @@ TEST(HardeningDeathTest, HardeningAssertSlow) {
5973
#endif
6074
}
6175

62-
TEST(HardeningTest, HardeningAssertGT) {
76+
TEST_F(HardeningTest, HardeningAssertGT) {
6377
absl::base_internal::HardeningAssertGT(1, 0);
6478
}
6579

66-
TEST(HardeningDeathTest, HardeningAssertGT) {
80+
TEST_F(HardeningDeathTest, HardeningAssertGT) {
6781
#if GTEST_HAS_DEATH_TEST
6882
if (IsHardened()) {
6983
// The underlying mechanism of termination varies, and may include SIGILL
7084
// or SIGABRT.
85+
absl::base_internal::SetAbslHardeningEnabled(true);
7186
EXPECT_DEATH(absl::base_internal::HardeningAssertGT(1, 1), "");
7287
EXPECT_DEATH(absl::base_internal::HardeningAssertGT(0, 1), "");
7388
}
7489
#endif
7590
}
7691

77-
TEST(HardeningTest, HardeningAssertGE) {
92+
TEST_F(HardeningTest, HardeningAssertGE) {
7893
absl::base_internal::HardeningAssertGE(1, 0);
7994
absl::base_internal::HardeningAssertGE(1, 1);
8095
}
8196

82-
TEST(HardeningDeathTest, HardeningAssertGE) {
97+
TEST_F(HardeningDeathTest, HardeningAssertGE) {
8398
#if GTEST_HAS_DEATH_TEST
8499
if (IsHardened()) {
85100
// The underlying mechanism of termination varies, and may include SIGILL
86101
// or SIGABRT.
102+
absl::base_internal::SetAbslHardeningEnabled(true);
87103
EXPECT_DEATH(absl::base_internal::HardeningAssertGE(0, 1), "");
88104
}
89105
#endif
90106
}
91107

92-
TEST(HardeningTest, HardeningAssertLT) {
108+
TEST_F(HardeningTest, HardeningAssertLT) {
93109
absl::base_internal::HardeningAssertLT(0, 1);
94110
}
95111

96-
TEST(HardeningDeathTest, HardeningAssertLT) {
112+
TEST_F(HardeningDeathTest, HardeningAssertLT) {
97113
#if GTEST_HAS_DEATH_TEST
98114
if (IsHardened()) {
99115
// The underlying mechanism of termination varies, and may include SIGILL
100116
// or SIGABRT.
117+
absl::base_internal::SetAbslHardeningEnabled(true);
101118
EXPECT_DEATH(absl::base_internal::HardeningAssertLT(1, 1), "");
102119
EXPECT_DEATH(absl::base_internal::HardeningAssertLT(1, 0), "");
103120
}
104121
#endif
105122
}
106123

107-
TEST(HardeningTest, HardeningAssertLE) {
124+
TEST_F(HardeningTest, HardeningAssertLE) {
108125
absl::base_internal::HardeningAssertLE(0, 1);
109126
absl::base_internal::HardeningAssertLE(1, 1);
110127
}
111128

112-
TEST(HardeningDeathTest, HardeningAssertLE) {
129+
TEST_F(HardeningDeathTest, HardeningAssertLE) {
113130
#if GTEST_HAS_DEATH_TEST
114131
if (IsHardened()) {
115132
// The underlying mechanism of termination varies, and may include SIGILL
116133
// or SIGABRT.
134+
absl::base_internal::SetAbslHardeningEnabled(true);
117135
EXPECT_DEATH(absl::base_internal::HardeningAssertLE(1, 0), "");
118136
}
119137
#endif
120138
}
121139

122-
TEST(HardeningTest, HardeningAssertInBounds) {
140+
TEST_F(HardeningTest, HardeningAssertInBounds) {
123141
absl::base_internal::HardeningAssertInBounds(0, 10);
124142
}
125143

126-
TEST(HardeningDeathTest, HardeningAssertInBounds) {
144+
TEST_F(HardeningDeathTest, HardeningAssertInBounds) {
127145
#if GTEST_HAS_DEATH_TEST
128146
if (IsHardened()) {
129147
// The underlying mechanism of termination varies, and may include SIGILL
130148
// or SIGABRT.
149+
absl::base_internal::SetAbslHardeningEnabled(true);
131150
EXPECT_DEATH(absl::base_internal::HardeningAssertInBounds(10, 10), "");
132151
}
133152
#endif
134153
}
135154

136-
TEST(HardeningTest, HardeningAssertNonEmpty) {
155+
TEST_F(HardeningTest, HardeningAssertNonEmpty) {
137156
std::vector<int> v = {1};
138157
absl::base_internal::HardeningAssertNonEmpty(v);
139158
}
140159

141-
TEST(HardeningDeathTest, HardeningAssertNonEmpty) {
160+
TEST_F(HardeningDeathTest, HardeningAssertNonEmpty) {
142161
#if GTEST_HAS_DEATH_TEST
143162
if (IsHardened()) {
144163
// The underlying mechanism of termination varies, and may include SIGILL
145164
// or SIGABRT.
146165
std::vector<int> v = {};
166+
absl::base_internal::SetAbslHardeningEnabled(true);
147167
EXPECT_DEATH(absl::base_internal::HardeningAssertNonEmpty(v), "");
148168
}
149169
#endif
150170
}
151171

152-
TEST(HardeningTest, HardeningAssertNonNull) {
172+
TEST_F(HardeningTest, HardeningAssertNonNull) {
153173
int x = 1;
154174
absl::base_internal::HardeningAssertNonNull(&x);
155175
}
156176

157-
TEST(HardeningDeathTest, HardeningAssertNonNull) {
177+
TEST_F(HardeningDeathTest, HardeningAssertNonNull) {
158178
#if GTEST_HAS_DEATH_TEST
159179
if (IsHardened()) {
160180
// The underlying mechanism of termination varies, and may include SIGILL
161181
// or SIGABRT.
162182
int *x = nullptr;
183+
absl::base_internal::SetAbslHardeningEnabled(true);
163184
EXPECT_DEATH(absl::base_internal::HardeningAssertNonNull(x), "");
164185
}
165186
#endif

absl/base/macros.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#ifndef ABSL_BASE_MACROS_H_
2929
#define ABSL_BASE_MACROS_H_
3030

31+
#include <atomic>
3132
#include <cassert>
3233
#include <cstddef>
3334

@@ -157,12 +158,12 @@ ABSL_NAMESPACE_END
157158
// See `ABSL_OPTION_HARDENED` in `absl/base/options.h` for more information on
158159
// hardened mode.
159160
#if (ABSL_OPTION_HARDENED == 1 || ABSL_OPTION_HARDENED == 2) && defined(NDEBUG)
160-
#define ABSL_HARDENING_ASSERT(expr) \
161-
do { \
162-
if (!ABSL_PREDICT_TRUE((expr))) { \
163-
ABSL_INTERNAL_HARDENING_ABORT(); \
164-
} \
165-
} while (false)
161+
#define ABSL_HARDENING_ASSERT(expr) \
162+
do { \
163+
if (!ABSL_PREDICT_TRUE((expr))) { \
164+
ABSL_INTERNAL_HARDENING_ABORT(); \
165+
} \
166+
} while (false)
166167
#else
167168
#define ABSL_HARDENING_ASSERT(expr) ABSL_ASSERT(expr)
168169
#endif

0 commit comments

Comments
 (0)