[clang] d1f4753 - [clang] llvm::Optional::value() && => operator*/operator->
Fangrui Song via cfe-commits
cfe-commits at lists.llvm.org
Sat Dec 17 11:47:50 PST 2022
Author: Fangrui Song
Date: 2022-12-17T19:47:45Z
New Revision: d1f475347518bdab387f21cda2281c0939a80f70
URL: https://github.com/llvm/llvm-project/commit/d1f475347518bdab387f21cda2281c0939a80f70
DIFF: https://github.com/llvm/llvm-project/commit/d1f475347518bdab387f21cda2281c0939a80f70.diff
LOG: [clang] llvm::Optional::value() && => operator*/operator->
std::optional::value() has undesired exception checking semantics and is
unavailable in older Xcode (see _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS). The
call sites block std::optional migration.
Added:
Modified:
clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
clang/lib/Sema/SemaRISCVVectorLookup.cpp
clang/unittests/Analysis/MacroExpansionContextTest.cpp
clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
index 444c317cbbefc..7394a7d32eafb 100644
--- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
+++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
@@ -1017,9 +1017,8 @@ class CXXAllocatorCall : public AnyFunctionCall {
}
SVal getObjectUnderConstruction() const {
- return ExprEngine::getObjectUnderConstruction(getState(), getOriginExpr(),
- getLocationContext())
- .value();
+ return *ExprEngine::getObjectUnderConstruction(getState(), getOriginExpr(),
+ getLocationContext());
}
/// Number of non-placement arguments to the call. It is equal to 2 for
diff --git a/clang/lib/Sema/SemaRISCVVectorLookup.cpp b/clang/lib/Sema/SemaRISCVVectorLookup.cpp
index 85bf11e942b96..cf9a8a4f5a228 100644
--- a/clang/lib/Sema/SemaRISCVVectorLookup.cpp
+++ b/clang/lib/Sema/SemaRISCVVectorLookup.cpp
@@ -115,7 +115,7 @@ static QualType RVVType2Qual(ASTContext &Context, const RVVType *Type) {
llvm_unreachable("Unhandled type.");
}
if (Type->isVector())
- QT = Context.getScalableVectorType(QT, Type->getScale().value());
+ QT = Context.getScalableVectorType(QT, *Type->getScale());
if (Type->isConstant())
QT = Context.getConstType(QT);
diff --git a/clang/unittests/Analysis/MacroExpansionContextTest.cpp b/clang/unittests/Analysis/MacroExpansionContextTest.cpp
index add3099a5be9a..5c694c836a488 100644
--- a/clang/unittests/Analysis/MacroExpansionContextTest.cpp
+++ b/clang/unittests/Analysis/MacroExpansionContextTest.cpp
@@ -181,14 +181,14 @@ EMPTY zz
// A b cd ef gh
// zz
- EXPECT_EQ("", Ctx->getExpandedText(at(3, 10)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(3, 10)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(3, 10)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(3, 10)));
- EXPECT_EQ("", Ctx->getExpandedText(at(3, 19)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(3, 19)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(3, 19)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(3, 19)));
- EXPECT_EQ("", Ctx->getExpandedText(at(4, 1)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(4, 1)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(4, 1)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(4, 1)));
}
TEST_F(MacroExpansionContextTest, TransitiveExpansions) {
@@ -200,10 +200,10 @@ TEST_F(MacroExpansionContextTest, TransitiveExpansions) {
// After preprocessing:
// A b cd ) 1 ef gh
- EXPECT_EQ("WOOF", Ctx->getOriginalText(at(4, 10)).value());
+ EXPECT_EQ("WOOF", *Ctx->getOriginalText(at(4, 10)));
- EXPECT_EQ("", Ctx->getExpandedText(at(4, 18)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(4, 18)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(4, 18)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(4, 18)));
}
TEST_F(MacroExpansionContextTest, MacroFunctions) {
@@ -219,17 +219,17 @@ TEST_F(MacroExpansionContextTest, MacroFunctions) {
// WOOF( ) ) ) 1
// bar barr( ) ) ) 1( ) ) ) 1),,),')
- EXPECT_EQ("$$ ef ()))1", Ctx->getExpandedText(at(4, 10)).value());
- EXPECT_EQ("WOOF($$ ef)", Ctx->getOriginalText(at(4, 10)).value());
+ EXPECT_EQ("$$ ef ()))1", *Ctx->getExpandedText(at(4, 10)));
+ EXPECT_EQ("WOOF($$ ef)", *Ctx->getOriginalText(at(4, 10)));
- EXPECT_EQ("", Ctx->getExpandedText(at(4, 22)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(4, 22)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(4, 22)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(4, 22)));
- EXPECT_EQ("WOOF ()))1", Ctx->getExpandedText(at(5, 3)).value());
- EXPECT_EQ("WOOF(WOOF)", Ctx->getOriginalText(at(5, 3)).value());
+ EXPECT_EQ("WOOF ()))1", *Ctx->getExpandedText(at(5, 3)));
+ EXPECT_EQ("WOOF(WOOF)", *Ctx->getOriginalText(at(5, 3)));
- EXPECT_EQ("bar barr ()))1()))1", Ctx->getExpandedText(at(6, 3)).value());
- EXPECT_EQ("WOOF(WOOF(bar barr))", Ctx->getOriginalText(at(6, 3)).value());
+ EXPECT_EQ("bar barr ()))1()))1", *Ctx->getExpandedText(at(6, 3)));
+ EXPECT_EQ("WOOF(WOOF(bar barr))", *Ctx->getOriginalText(at(6, 3)));
}
TEST_F(MacroExpansionContextTest, VariadicMacros) {
@@ -251,23 +251,20 @@ TEST_F(MacroExpansionContextTest, VariadicMacros) {
// fprintf (stderr, "success!\n" );
EXPECT_EQ(R"(fprintf (stderr ,"success!\n",))",
- Ctx->getExpandedText(at(3, 3)).value());
- EXPECT_EQ(R"(eprintf("success!\n", ))",
- Ctx->getOriginalText(at(3, 3)).value());
+ *Ctx->getExpandedText(at(3, 3)));
+ EXPECT_EQ(R"(eprintf("success!\n", ))", *Ctx->getOriginalText(at(3, 3)));
EXPECT_EQ(R"(fprintf (stderr ,"success!\n",))",
- Ctx->getExpandedText(at(4, 3)).value());
- EXPECT_EQ(R"(eprintf("success!\n"))", Ctx->getOriginalText(at(4, 3)).value());
+ *Ctx->getExpandedText(at(4, 3)));
+ EXPECT_EQ(R"(eprintf("success!\n"))", *Ctx->getOriginalText(at(4, 3)));
EXPECT_EQ(R"(fprintf (stderr ,"success!\n"))",
- Ctx->getExpandedText(at(8, 3)).value());
- EXPECT_EQ(R"(eprintf2("success!\n", ))",
- Ctx->getOriginalText(at(8, 3)).value());
+ *Ctx->getExpandedText(at(8, 3)));
+ EXPECT_EQ(R"(eprintf2("success!\n", ))", *Ctx->getOriginalText(at(8, 3)));
EXPECT_EQ(R"(fprintf (stderr ,"success!\n"))",
- Ctx->getExpandedText(at(9, 3)).value());
- EXPECT_EQ(R"(eprintf2("success!\n"))",
- Ctx->getOriginalText(at(9, 3)).value());
+ *Ctx->getExpandedText(at(9, 3)));
+ EXPECT_EQ(R"(eprintf2("success!\n"))", *Ctx->getOriginalText(at(9, 3)));
}
TEST_F(MacroExpansionContextTest, ConcatenationMacros) {
@@ -284,13 +281,11 @@ TEST_F(MacroExpansionContextTest, ConcatenationMacros) {
// { "help", help_command },
// };
- EXPECT_EQ(R"({"quit",quit_command })",
- Ctx->getExpandedText(at(4, 5)).value());
- EXPECT_EQ("COMMAND(quit)", Ctx->getOriginalText(at(4, 5)).value());
+ EXPECT_EQ(R"({"quit",quit_command })", *Ctx->getExpandedText(at(4, 5)));
+ EXPECT_EQ("COMMAND(quit)", *Ctx->getOriginalText(at(4, 5)));
- EXPECT_EQ(R"({"help",help_command })",
- Ctx->getExpandedText(at(5, 5)).value());
- EXPECT_EQ("COMMAND(help)", Ctx->getOriginalText(at(5, 5)).value());
+ EXPECT_EQ(R"({"help",help_command })", *Ctx->getExpandedText(at(5, 5)));
+ EXPECT_EQ("COMMAND(help)", *Ctx->getOriginalText(at(5, 5)));
}
TEST_F(MacroExpansionContextTest, StringizingMacros) {
@@ -315,14 +310,14 @@ TEST_F(MacroExpansionContextTest, StringizingMacros) {
EXPECT_EQ(
R"(do {if (x ==0)fprintf (stderr ,"Warning: ""x == 0""\n");}while (0))",
- Ctx->getExpandedText(at(6, 3)).value());
- EXPECT_EQ("WARN_IF (x == 0)", Ctx->getOriginalText(at(6, 3)).value());
+ *Ctx->getExpandedText(at(6, 3)));
+ EXPECT_EQ("WARN_IF (x == 0)", *Ctx->getOriginalText(at(6, 3)));
- EXPECT_EQ(R"("foo")", Ctx->getExpandedText(at(11, 3)).value());
- EXPECT_EQ("str (foo)", Ctx->getOriginalText(at(11, 3)).value());
+ EXPECT_EQ(R"("foo")", *Ctx->getExpandedText(at(11, 3)));
+ EXPECT_EQ("str (foo)", *Ctx->getOriginalText(at(11, 3)));
- EXPECT_EQ(R"("4")", Ctx->getExpandedText(at(12, 3)).value());
- EXPECT_EQ("xstr (foo)", Ctx->getOriginalText(at(12, 3)).value());
+ EXPECT_EQ(R"("4")", *Ctx->getExpandedText(at(12, 3)));
+ EXPECT_EQ("xstr (foo)", *Ctx->getOriginalText(at(12, 3)));
}
TEST_F(MacroExpansionContextTest, StringizingVariadicMacros) {
@@ -351,18 +346,18 @@ TEST_F(MacroExpansionContextTest, StringizingVariadicMacros) {
EXPECT_EQ("zz !apple !x *apple !x !**y (apple )zz !apple !x *apple !x !**y "
"(appleapple ))))",
- Ctx->getExpandedText(at(11, 3)).value());
- EXPECT_EQ("q(g)", Ctx->getOriginalText(at(11, 3)).value());
+ *Ctx->getExpandedText(at(11, 3)));
+ EXPECT_EQ("q(g)", *Ctx->getOriginalText(at(11, 3)));
EXPECT_EQ(R"res("apple"(apple )"apple"(appleapple )))))res",
- Ctx->getExpandedText(at(12, 3)).value());
- EXPECT_EQ("q(xstr)", Ctx->getOriginalText(at(12, 3)).value());
+ *Ctx->getExpandedText(at(12, 3)));
+ EXPECT_EQ("q(xstr)", *Ctx->getOriginalText(at(12, 3)));
- EXPECT_EQ("zz !*)!x )!**y ", Ctx->getExpandedText(at(13, 3)).value());
- EXPECT_EQ("g(RParen2x)", Ctx->getOriginalText(at(13, 3)).value());
+ EXPECT_EQ("zz !*)!x )!**y ", *Ctx->getExpandedText(at(13, 3)));
+ EXPECT_EQ("g(RParen2x)", *Ctx->getOriginalText(at(13, 3)));
- EXPECT_EQ("!))*))", Ctx->getExpandedText(at(14, 3)).value());
- EXPECT_EQ("f( RParen2x )", Ctx->getOriginalText(at(14, 3)).value());
+ EXPECT_EQ("!))*))", *Ctx->getExpandedText(at(14, 3)));
+ EXPECT_EQ("f( RParen2x )", *Ctx->getOriginalText(at(14, 3)));
}
TEST_F(MacroExpansionContextTest, RedefUndef) {
@@ -380,11 +375,11 @@ TEST_F(MacroExpansionContextTest, RedefUndef) {
// Hi(Hi)
// FIXME: Extra space follows every identifier.
- EXPECT_EQ("Welcome Adam ", Ctx->getExpandedText(at(3, 3)).value());
- EXPECT_EQ("Hi(Adam)", Ctx->getOriginalText(at(3, 3)).value());
+ EXPECT_EQ("Welcome Adam ", *Ctx->getExpandedText(at(3, 3)));
+ EXPECT_EQ("Hi(Adam)", *Ctx->getOriginalText(at(3, 3)));
- EXPECT_EQ("Willkommen ", Ctx->getExpandedText(at(5, 3)).value());
- EXPECT_EQ("Hi", Ctx->getOriginalText(at(5, 3)).value());
+ EXPECT_EQ("Willkommen ", *Ctx->getExpandedText(at(5, 3)));
+ EXPECT_EQ("Hi", *Ctx->getOriginalText(at(5, 3)));
// There was no macro expansion at 7:3, we should expect None.
EXPECT_FALSE(Ctx->getExpandedText(at(7, 3)).has_value());
@@ -410,11 +405,11 @@ TEST_F(MacroExpansionContextTest, UnbalacedParenthesis) {
// fun();
// int x = ((1, fun(), 1, fun(), 1 ));
- EXPECT_EQ("fun ()", Ctx->getExpandedText(at(8, 3)).value());
- EXPECT_EQ("applyInt )", Ctx->getOriginalText(at(8, 3)).value());
+ EXPECT_EQ("fun ()", *Ctx->getExpandedText(at(8, 3)));
+ EXPECT_EQ("applyInt )", *Ctx->getOriginalText(at(8, 3)));
- EXPECT_EQ("((1,fun (),1,fun (),1", Ctx->getExpandedText(at(13, 12)).value());
- EXPECT_EQ("f(f(1))", Ctx->getOriginalText(at(13, 12)).value());
+ EXPECT_EQ("((1,fun (),1,fun (),1", *Ctx->getExpandedText(at(13, 12)));
+ EXPECT_EQ("f(f(1))", *Ctx->getOriginalText(at(13, 12)));
}
} // namespace
diff --git a/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp b/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
index 62faf032a3ee7..53361a1184f5d 100644
--- a/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
+++ b/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
@@ -262,7 +262,7 @@ void checkEventualResultWithTimeout(VerifyingConsumer &TestConsumer) {
if (TestConsumer.result()) {
EXPECT_TRUE(*TestConsumer.result());
}
- if ((TestConsumer.result() && !TestConsumer.result().value()) ||
+ if ((TestConsumer.result() && !*TestConsumer.result()) ||
!TestConsumer.result())
TestConsumer.printUnmetExpectations(llvm::outs());
}
More information about the cfe-commits
mailing list