Author: Matheus Izvekov Date: 2025-09-21T18:16:46Z New Revision: 290f5b5639717d12765401c2f51311d47c894990
URL: https://github.com/llvm/llvm-project/commit/290f5b5639717d12765401c2f51311d47c894990 DIFF: https://github.com/llvm/llvm-project/commit/290f5b5639717d12765401c2f51311d47c894990.diff LOG: [clang] fix using enum redecl in template regression (#159996) This fixes a regression reported here: https://github.com/llvm/llvm-project/pull/155313#issuecomment-3315883183 Since this regression was never released, there are no release notes. Added: Modified: clang/lib/Sema/SemaCXXScopeSpec.cpp clang/test/SemaCXX/cxx20-using-enum.cpp Removed: ################################################################################ diff --git a/clang/lib/Sema/SemaCXXScopeSpec.cpp b/clang/lib/Sema/SemaCXXScopeSpec.cpp index e89243b9d767a..97ba1a510cee4 100644 --- a/clang/lib/Sema/SemaCXXScopeSpec.cpp +++ b/clang/lib/Sema/SemaCXXScopeSpec.cpp @@ -220,10 +220,11 @@ bool Sema::RequireCompleteDeclContext(CXXScopeSpec &SS, /// bool Sema::RequireCompleteEnumDecl(EnumDecl *EnumD, SourceLocation L, CXXScopeSpec *SS) { - if (EnumD->isCompleteDefinition()) { + if (EnumDecl *Def = EnumD->getDefinition(); + Def && Def->isCompleteDefinition()) { // If we know about the definition but it is not visible, complain. NamedDecl *SuggestedDef = nullptr; - if (!hasReachableDefinition(EnumD, &SuggestedDef, + if (!hasReachableDefinition(Def, &SuggestedDef, /*OnlyNeedComplete*/ false)) { // If the user is going to see an error here, recover by making the // definition visible. diff --git a/clang/test/SemaCXX/cxx20-using-enum.cpp b/clang/test/SemaCXX/cxx20-using-enum.cpp index 775b65c5a8d8e..0ae6f4c9a07b6 100644 --- a/clang/test/SemaCXX/cxx20-using-enum.cpp +++ b/clang/test/SemaCXX/cxx20-using-enum.cpp @@ -288,4 +288,14 @@ struct S { }; }; } + +namespace Redecl { + enum class A : int { X }; + enum class A : int; + template <class> struct B { + using enum A; + using Z = decltype(X); + }; + template struct B<int>; +} // namespace Redecl #endif _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
