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