From: Fangrui Song Date: Sat, 17 Dec 2022 19:47:45 +0000 (+0000) Subject: [clang] llvm::Optional::value() && => operator*/operator-> X-Git-Tag: upstream/17.0.6~23391 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d1f475347518bdab387f21cda2281c0939a80f70;p=platform%2Fupstream%2Fllvm.git [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. --- diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h index 444c317..7394a7d 100644 --- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h +++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h @@ -1017,9 +1017,8 @@ public: } 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 85bf11e..cf9a8a4 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 add3099..5c694c8 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 62faf03..53361a1 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()); }