hokein created this revision. hokein added a reviewer: kadircet. Herald added a project: All. hokein requested review of this revision. Herald added a project: clang.
C99 is the the earliest C version provided by the language opt. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D155816 Files: clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp clang/unittests/Tooling/StandardLibraryTest.cpp Index: clang/unittests/Tooling/StandardLibraryTest.cpp =================================================================== --- clang/unittests/Tooling/StandardLibraryTest.cpp +++ clang/unittests/Tooling/StandardLibraryTest.cpp @@ -174,6 +174,17 @@ EXPECT_EQ(Recognizer(Sec), std::nullopt); } +TEST(StdlibTest, RecognizerForC99) { + TestInputs Input("typedef char uint8_t;"); + Input.Language = TestLanguage::Lang_C99; + TestAST AST(Input); + + auto &Uint8T = lookup(AST, "uint8_t"); + stdlib::Recognizer Recognizer; + EXPECT_EQ(Recognizer(&Uint8T), + stdlib::Symbol::named("", "uint8_t", stdlib::Lang::C)); +} + } // namespace } // namespace tooling } // namespace clang Index: clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp =================================================================== --- clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp +++ clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp @@ -247,13 +247,12 @@ std::optional<Symbol> Recognizer::operator()(const Decl *D) { Lang L; - if (D->getLangOpts().CPlusPlus) { + if (D->getLangOpts().CPlusPlus) L = Lang::CXX; - } else if (D->getLangOpts().C11) { + else if (D->getLangOpts().C99) L = Lang::C; - } else { + else return std::nullopt; // not a supported language. - } // If D is std::vector::iterator, `vector` is the outer symbol to look up. // We keep all the candidate DCs as some may turn out to be anon enums.
Index: clang/unittests/Tooling/StandardLibraryTest.cpp =================================================================== --- clang/unittests/Tooling/StandardLibraryTest.cpp +++ clang/unittests/Tooling/StandardLibraryTest.cpp @@ -174,6 +174,17 @@ EXPECT_EQ(Recognizer(Sec), std::nullopt); } +TEST(StdlibTest, RecognizerForC99) { + TestInputs Input("typedef char uint8_t;"); + Input.Language = TestLanguage::Lang_C99; + TestAST AST(Input); + + auto &Uint8T = lookup(AST, "uint8_t"); + stdlib::Recognizer Recognizer; + EXPECT_EQ(Recognizer(&Uint8T), + stdlib::Symbol::named("", "uint8_t", stdlib::Lang::C)); +} + } // namespace } // namespace tooling } // namespace clang Index: clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp =================================================================== --- clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp +++ clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp @@ -247,13 +247,12 @@ std::optional<Symbol> Recognizer::operator()(const Decl *D) { Lang L; - if (D->getLangOpts().CPlusPlus) { + if (D->getLangOpts().CPlusPlus) L = Lang::CXX; - } else if (D->getLangOpts().C11) { + else if (D->getLangOpts().C99) L = Lang::C; - } else { + else return std::nullopt; // not a supported language. - } // If D is std::vector::iterator, `vector` is the outer symbol to look up. // We keep all the candidate DCs as some may turn out to be anon enums.
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits