forked from OSchip/llvm-project
[modules] Make sure we make hidden UsingShadowDecls visible to redeclaration
lookup for the UsingShadowDecls themselves. llvm-svn: 247714
This commit is contained in:
parent
7b13976254
commit
ec4ad5ac9b
|
@ -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())) ||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
typedef int using_decl_type;
|
||||
int using_decl_var;
|
||||
int merged;
|
||||
|
||||
namespace UsingDecl {
|
||||
using ::using_decl_type;
|
||||
|
|
|
@ -8,6 +8,7 @@ namespace UsingDecl {
|
|||
namespace UsingDecl {
|
||||
using ::using_decl_type;
|
||||
using ::using_decl_var;
|
||||
using ::merged;
|
||||
}
|
||||
|
||||
namespace X {
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue