I'm not opposed to the changes, but they do seem like functional changes -- we used to trigger an assertion and now we're swallowing it and changing the behavior; can you add a test case that would have previously asserted?
~Aaron On Wed, Apr 3, 2024 at 3:05 AM Chuanqi Xu via cfe-commits <cfe-commits@lists.llvm.org> wrote: > > > Author: Chuanqi Xu > Date: 2024-04-03T15:03:07+08:00 > New Revision: 468dc32ff55d19f55132cbcc4d6ceb1f6d1c12cf > > URL: > https://github.com/llvm/llvm-project/commit/468dc32ff55d19f55132cbcc4d6ceb1f6d1c12cf > DIFF: > https://github.com/llvm/llvm-project/commit/468dc32ff55d19f55132cbcc4d6ceb1f6d1c12cf.diff > > LOG: [NFC] Make `DeclContext::noload_lookup()` accept transparent context > > Now the `DeclContext::noload_lookup()` asserts that 'this' is not a > transparent context. However, this is not consistent with > `DeclContext::lookup()`, which will lookup into its parent context if > 'this' is a transparent context. > > This patch makes the behavior of `DeclContext::noload_lookup()` to be > consistent with `DeclContext::lookup()`, to lookup into the parent > context if 'this' is a transparent context. > > Added: > > > Modified: > clang/lib/AST/DeclBase.cpp > > Removed: > > > > ################################################################################ > diff --git a/clang/lib/AST/DeclBase.cpp b/clang/lib/AST/DeclBase.cpp > index 2cbb86b31b5e2e..66a727d9dd0c39 100644 > --- a/clang/lib/AST/DeclBase.cpp > +++ b/clang/lib/AST/DeclBase.cpp > @@ -1852,9 +1852,9 @@ DeclContext::lookup(DeclarationName Name) const { > > DeclContext::lookup_result > DeclContext::noload_lookup(DeclarationName Name) { > - assert(getDeclKind() != Decl::LinkageSpec && > - getDeclKind() != Decl::Export && > - "should not perform lookups into transparent contexts"); > + // For transparent DeclContext, we should lookup in their enclosing > context. > + if (getDeclKind() == Decl::LinkageSpec || getDeclKind() == Decl::Export) > + return getParent()->noload_lookup(Name); > > DeclContext *PrimaryContext = getPrimaryContext(); > if (PrimaryContext != this) > > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits