Mercurial > hg > CbC > CbC_llvm
view clang/test/Modules/using-directive.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 -fmodules-local-submodule-visibility -fno-modules-error-recovery -fno-spell-checking -verify %s #pragma clang module build a module a { explicit module b {} explicit module c {} } #pragma clang module contents #pragma clang module begin a.b namespace b { int n; } #pragma clang module end #pragma clang module begin a.c #pragma clang module import a.b namespace c { using namespace b; } #pragma clang module end #pragma clang module begin a #pragma clang module import a.c using namespace c; #pragma clang module end #pragma clang module endbuild #pragma clang module import a.b void use1() { (void)n; // expected-error {{use of undeclared identifier}} (void)::n; // expected-error {{no member named 'n' in the global namespace}} (void)b::n; } namespace b { void use1_in_b() { (void)n; } } namespace c { void use1_in_c() { (void)n; } // expected-error {{use of undeclared identifier}} } #pragma clang module import a.c void use2() { (void)n; // expected-error {{use of undeclared identifier}} (void)::n; // expected-error {{no member named 'n' in the global namespace}} (void)b::n; (void)c::n; } namespace b { void use2_in_b() { (void)n; } } namespace c { void use2_in_c() { (void)n; } } #pragma clang module import a void use3() { (void)n; (void)::n; (void)b::n; (void)c::n; } namespace b { void use3_in_b() { (void)n; } } namespace c { void use3_in_c() { (void)n; } }