Author: rsmith Date: Tue Sep 15 13:51:56 2015 New Revision: 247714 URL: http://llvm.org/viewvc/llvm-project?rev=247714&view=rev Log: [modules] Make sure we make hidden UsingShadowDecls visible to redeclaration lookup for the UsingShadowDecls themselves.
Modified: cfe/trunk/include/clang/Sema/Lookup.h cfe/trunk/test/Modules/Inputs/using-decl-a.h cfe/trunk/test/Modules/Inputs/using-decl-b.h cfe/trunk/test/Modules/using-decl.cpp Modified: cfe/trunk/include/clang/Sema/Lookup.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Lookup.h?rev=247714&r1=247713&r2=247714&view=diff ============================================================================== --- cfe/trunk/include/clang/Sema/Lookup.h (original) +++ cfe/trunk/include/clang/Sema/Lookup.h Tue Sep 15 13:51:56 2015 @@ -240,7 +240,7 @@ public: // If a using-shadow declaration is hidden, it's never visible, not // even to redeclaration lookup. // FIXME: Should this apply to typedefs and namespace aliases too? - if (isa<UsingShadowDecl>(ND)) + if (isa<UsingShadowDecl>(ND) && LookupKind != Sema::LookupUsingDeclName) return false; return (AllowHidden && (AllowHiddenInternal || ND->isExternallyVisible())) || Modified: cfe/trunk/test/Modules/Inputs/using-decl-a.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/using-decl-a.h?rev=247714&r1=247713&r2=247714&view=diff ============================================================================== --- cfe/trunk/test/Modules/Inputs/using-decl-a.h (original) +++ cfe/trunk/test/Modules/Inputs/using-decl-a.h Tue Sep 15 13:51:56 2015 @@ -1,5 +1,6 @@ typedef int using_decl_type; int using_decl_var; +int merged; namespace UsingDecl { using ::using_decl_type; Modified: cfe/trunk/test/Modules/Inputs/using-decl-b.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/using-decl-b.h?rev=247714&r1=247713&r2=247714&view=diff ============================================================================== --- cfe/trunk/test/Modules/Inputs/using-decl-b.h (original) +++ cfe/trunk/test/Modules/Inputs/using-decl-b.h Tue Sep 15 13:51:56 2015 @@ -8,6 +8,7 @@ namespace UsingDecl { namespace UsingDecl { using ::using_decl_type; using ::using_decl_var; + using ::merged; } namespace X { Modified: cfe/trunk/test/Modules/using-decl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/using-decl.cpp?rev=247714&r1=247713&r2=247714&view=diff ============================================================================== --- cfe/trunk/test/Modules/using-decl.cpp (original) +++ cfe/trunk/test/Modules/using-decl.cpp Tue Sep 15 13:51:56 2015 @@ -3,9 +3,15 @@ // RUN: %clang_cc1 -x objective-c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs %s -verify -UEARLY_IMPORT // RUN: %clang_cc1 -x objective-c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs %s -verify -DEARLY_IMPORT -fno-modules-hide-internal-linkage // RUN: %clang_cc1 -x objective-c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs %s -verify -UEARLY_IMPORT -fno-modules-hide-internal-linkage +// RUN: %clang_cc1 -x objective-c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs %s -verify -DEARLY_IMPORT -fmodules-local-submodule-visibility +// RUN: %clang_cc1 -x objective-c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs %s -verify -UEARLY_IMPORT -fmodules-local-submodule-visibility #ifdef EARLY_IMPORT @import using_decl.a; +namespace UsingDecl { + using ::merged; +} +int k = UsingDecl::merged; #endif namespace Y { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits