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
57 lines
1.7 KiB
C++
57 lines
1.7 KiB
C++
// Tests that we assign appropriate identifiers to indirect calls and targets
|
|
// specifically for virtual methods.
|
|
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-linux -fexperimental-call-graph-section \
|
|
// RUN: -emit-llvm -o %t %s
|
|
// RUN: FileCheck --check-prefix=FT %s < %t
|
|
// RUN: FileCheck --check-prefix=CST %s < %t
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Class definitions (check for indirect target metadata)
|
|
|
|
class Base {
|
|
public:
|
|
// FT-LABEL: define {{.*}} @_ZN4Base2vfEPc(
|
|
// FT-SAME: {{.*}} !type [[F_TVF:![0-9]+]]
|
|
virtual int vf(char *a) { return 0; };
|
|
};
|
|
|
|
class Derived : public Base {
|
|
public:
|
|
// FT: define {{.*}} @_ZN7Derived2vfEPc({{.*}} !type [[F_TVF]]
|
|
int vf(char *a) override { return 1; };
|
|
};
|
|
|
|
// FT: [[F_TVF]] = !{i64 0, !"_ZTSFiPcE.generalized"}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Callsites (check for indirect callsite operand bundles)
|
|
|
|
// CST-LABEL: define {{.*}} @_Z3foov
|
|
void foo() {
|
|
auto B = Base();
|
|
auto D = Derived();
|
|
|
|
Base *Bptr = &B;
|
|
Base *BptrToD = &D;
|
|
Derived *Dptr = &D;
|
|
|
|
auto FpBaseVf = &Base::vf;
|
|
auto FpDerivedVf = &Derived::vf;
|
|
|
|
// CST: call noundef i32 %{{.*}}, !callee_type [[F_TVF_CT:![0-9]+]]
|
|
(Bptr->*FpBaseVf)(0);
|
|
|
|
// CST: call noundef i32 %{{.*}}, !callee_type [[F_TVF_CT:![0-9]+]]
|
|
(BptrToD->*FpBaseVf)(0);
|
|
|
|
// CST: call noundef i32 %{{.*}}, !callee_type [[F_TVF_CT:![0-9]+]]
|
|
(Dptr->*FpBaseVf)(0);
|
|
|
|
// CST: call noundef i32 %{{.*}}, !callee_type [[F_TVF_CT:![0-9]+]]
|
|
(Dptr->*FpDerivedVf)(0);
|
|
}
|
|
|
|
// CST: [[F_TVF_CT]] = !{[[F_TVF:![0-9]+]]}
|
|
// CST: [[F_TVF]] = !{i64 0, !"_ZTSFiPcE.generalized"}
|