Files
TheRock/compiler/amd-llvm/lldb/test/Shell/SymbolFile/NativePDB/namespace-access.test
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

161 lines
3.6 KiB
Plaintext

# REQUIRES: target-windows
# Test namespace lookup.
# RUN: split-file %s %t
# RUN: %build --nodefaultlib -o %t.exe -- %t/main.cpp
# RUN: %lldb -f %t.exe -s \
# RUN: %t/commands.input 2>&1 | FileCheck %s
#--- main.cpp
struct S {
char a[1];
};
namespace Outer {
struct S {
char a[2];
};
namespace Inner1 {
struct S {
char a[3];
};
namespace Inner2 {
struct S {
char a[4];
};
} // namespace Inner2
} // namespace Inner1
namespace Inner2 {
struct S {
char a[5];
};
} // namespace Inner2
namespace {
struct A {
char a[6];
};
} // namespace
} // namespace Outer
namespace {
struct A {
char a[7];
};
} // namespace
int main(int argc, char **argv) {
S s;
Outer::S os;
Outer::Inner1::S oi1s;
Outer::Inner1::Inner2::S oi1i2s;
Outer::Inner2::S oi2s;
A a1;
Outer::A a2;
return sizeof(s) + sizeof(os) + sizeof(oi1s) + sizeof(oi1i2s) + sizeof(oi2s) + sizeof(a1) + sizeof(a2);
}
#--- commands.input
b main
r
type lookup S
type lookup ::S
type lookup Outer::S
type lookup Outer::Inner1::S
type lookup Inner1::S
type lookup Outer::Inner1::Inner2::S
type lookup Inner2::S
type lookup Outer::Inner2::S
type lookup Outer::A
type lookup A
type lookup ::A
# Test that Clang can find the namespaces as well
expr sizeof(S)
expr sizeof(::S)
expr sizeof(Outer::S)
expr sizeof(Outer::Inner1::S)
expr sizeof(Inner1::S)
expr sizeof(Outer::Inner1::Inner2::S)
expr sizeof(Outer::Inner2::S)
expr sizeof(Outer::A)
expr sizeof(A)
expr sizeof(::A)
quit
# CHECK: (lldb) type lookup S
# CHECK: struct S {
# CHECK: struct S {
# CHECK: struct S {
# CHECK: struct S {
# CHECK: struct S {
# CHECK: }
# CHECK-NEXT: (lldb) type lookup ::S
# CHECK-NEXT: struct S {
# CHECK-NEXT: char a[1];
# CHECK-NEXT: }
# CHECK-NEXT: (lldb) type lookup Outer::S
# CHECK-NEXT: struct S {
# CHECK-NEXT: char a[2];
# CHECK-NEXT: }
# CHECK-NEXT: (lldb) type lookup Outer::Inner1::S
# CHECK-NEXT: struct S {
# CHECK-NEXT: char a[3];
# CHECK-NEXT: }
# CHECK-NEXT: (lldb) type lookup Inner1::S
# CHECK-NEXT: struct S {
# CHECK-NEXT: char a[3];
# CHECK-NEXT: }
# CHECK-NEXT: (lldb) type lookup Outer::Inner1::Inner2::S
# CHECK-NEXT: struct S {
# CHECK-NEXT: char a[4];
# CHECK-NEXT: }
# CHECK-NEXT: (lldb) type lookup Inner2::S
# CHECK-NEXT: struct S {
# CHECK: struct S {
# CHECK: }
# CHECK-NEXT: (lldb) type lookup Outer::Inner2::S
# CHECK-NEXT: struct S {
# CHECK-NEXT: char a[5];
# CHECK-NEXT: }
# CHECK-NEXT: (lldb) type lookup Outer::A
# CHECK-NEXT: struct A {
# CHECK-NEXT: char a[6];
# CHECK-NEXT: }
# CHECK-NEXT: (lldb) type lookup A
# CHECK-NEXT: struct A {
# CHECK: struct A {
# CHECK: }
# CHECK-NEXT: (lldb) type lookup ::A
# CHECK-NEXT: struct A {
# CHECK-NEXT: char a[7];
# CHECK-NEXT: }
# CHECK-NEXT: (lldb) expr sizeof(S)
# CHECK-NEXT: (__size_t) $0 = 1
# CHECK-NEXT: (lldb) expr sizeof(::S)
# CHECK-NEXT: (__size_t) $1 = 1
# CHECK-NEXT: (lldb) expr sizeof(Outer::S)
# CHECK-NEXT: (__size_t) $2 = 2
# CHECK-NEXT: (lldb) expr sizeof(Outer::Inner1::S)
# CHECK-NEXT: (__size_t) $3 = 3
# CHECK-NEXT: (lldb) expr sizeof(Inner1::S)
# CHECK-NEXT: (__size_t) $4 = 3
# CHECK-NEXT: (lldb) expr sizeof(Outer::Inner1::Inner2::S)
# CHECK-NEXT: (__size_t) $5 = 4
# CHECK-NEXT: (lldb) expr sizeof(Outer::Inner2::S)
# CHECK-NEXT: (__size_t) $6 = 5
# CHECK-NEXT: (lldb) expr sizeof(Outer::A)
# CHECK-NEXT: (__size_t) $7 = 6
# CHECK-NEXT: (lldb) expr sizeof(A)
# CHECK-NEXT: (__size_t) $8 = 7
# CHECK-NEXT: (lldb) expr sizeof(::A)
# CHECK-NEXT: (__size_t) $9 = 7