Skip to content

Commit 276e48b

Browse files
committed
CR: another test
1 parent ac27ca9 commit 276e48b

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

clang/unittests/AST/ASTExprTest.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,24 @@ TEST(ASTExpr, InitListIsConstantInitialized) {
109109
EXPECT_FALSE(FooInit->isConstantInitializer(Ctx, false));
110110
}
111111

112+
TEST(ASTExpr, NoUnsignedOverflowICE) {
113+
auto AST = buildASTFromCode(R"cpp(
114+
unsigned u = 1u * 8u;
115+
)cpp");
116+
ASTContext &Ctx = AST->getASTContext();
117+
const VarDecl *Var = getVariableNode(AST.get(), "u");
118+
119+
const auto ICE = Var->getInit()->getIntegerConstantExpr(Ctx);
120+
EXPECT_TRUE(ICE.has_value());
121+
EXPECT_TRUE(ICE->isUnsigned());
122+
EXPECT_EQ(8u, *ICE);
123+
124+
const auto ICEOverflowCheck = Var->getInit()->getIntegerConstantExpr(Ctx, nullptr, true);
125+
EXPECT_TRUE(ICEOverflowCheck.has_value());
126+
EXPECT_TRUE(ICEOverflowCheck->isUnsigned());
127+
EXPECT_EQ(8u, *ICEOverflowCheck);
128+
}
129+
112130
TEST(ASTExpr, CheckForUnsignedOverflowICE) {
113131
auto AST = buildASTFromCode(R"cpp(
114132
unsigned u = 1'000'000'000u * 8u;

0 commit comments

Comments
 (0)