Mercurial > hg > CbC > CbC_llvm
view clang/test/Modules/using-decl-friend-2.cpp @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -fmodules %s -verify // expected-no-diagnostics #pragma clang module build A module A {} #pragma clang module contents #pragma clang module begin A namespace N { class X; } #pragma clang module end #pragma clang module endbuild #pragma clang module build B module B {} #pragma clang module contents #pragma clang module begin B namespace N { class Friendly { friend class X; }; } #pragma clang module end #pragma clang module endbuild #pragma clang module build C module C {} #pragma clang module contents #pragma clang module begin C #pragma clang module import A void use_X(N::X *p); #pragma clang module import B // UsingShadowDecl names the friend declaration using N::X; #pragma clang module end #pragma clang module endbuild #pragma clang module import B namespace N { class AlsoFriendly { friend class X; }; } #pragma clang module import A #pragma clang module import C // The friend declaration from N::Friendly is now the first in the redecl // chain, so is not ordinarily visible. We need the IDNS of the UsingShadowDecl // to still consider it to be visible, though. X *p;