brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 0e8b597 Raw
36 lines · plain
1// RUN: rm -rf %t2// RUN: split-file %s %t3// RUN: cd %t4//5// RUN: %clang_cc1 -std=c++20 -I %t %t/A.cppm -emit-module-interface -o %t/A.pcm -verify6// RUN: %clang_cc1 -std=c++20 -I %t %t/B.cpp -fmodule-file=A=%t/A.pcm -fsyntax-only -verify -ast-dump-all -ast-dump-filter baz | FileCheck %s7 8//--- foo.h9namespace baz {10  using foo = char;11  using baz::foo;12}13 14//--- A.cppm15// expected-no-diagnostics16module;17#include "foo.h"18export module A;19 20//--- B.cpp21// expected-no-diagnostics22#include "foo.h"23import A;24// Since modules are loaded lazily, force loading by performing a lookup.25using xxx = baz::foo;26 27// CHECK-LABEL: Dumping baz:28// CHECK-NEXT: NamespaceDecl 0x[[BAZ_REDECL_ADDR:[^ ]*]] prev 0x[[BAZ_ADDR:[^ ]*]]29// CHECK:      TypeAliasDecl 0x[[ALIAS_REDECL_ADDR:[^ ]*]] prev 0x[[ALIAS_ADDR:[^ ]*]]30// FIXME: UsingShadowDecl should have been merged31// CHECK:      UsingShadowDecl 0x{{[^ ]*}} prev 0x[[SHADOW_ADDR:[^ ]*]] {{.*}} imported in A.<global> {{.*}} 'foo'32 33// CHECK-LABEL: Dumping baz:34// CHECK-NEXT: NamespaceDecl 0x[[BAZ_ADDR]] <{{.*}}> line:{{.*}} baz35// CHECK:      UsingShadowDecl 0x[[SHADOW_ADDR]] {{.*}} 'foo'36