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
52 lines
2.6 KiB
Plaintext
52 lines
2.6 KiB
Plaintext
RUN: rm -rf %t
|
|
REQUIRES: x86-registered-target
|
|
|
|
RUN: %clang_cc1 -triple=x86_64-linux-gnu -fmodules-codegen -fmodules-debuginfo -x c++ -fmodules -emit-module -fmodule-name=foo %S/Inputs/codegen/foo.modulemap -o %t/foo.pcm
|
|
|
|
RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -debug-info-kind=limited -o - %t/foo.pcm | FileCheck --check-prefix=FOO --check-prefix=BOTH %s
|
|
RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -debug-info-kind=limited -o - -fmodules -disable-llvm-passes -fmodule-file=%t/foo.pcm %S/Inputs/codegen/use.cpp | FileCheck --check-prefix=BOTH --check-prefix=USE %s
|
|
|
|
|
|
For want of any better definition, inline asm goes "everywhere" the same as it
|
|
if it were in a header (with the disadvantage that the inline asm will be
|
|
included in the program if the module is used, even if the header containing
|
|
the inline asm is never included - unlike a non-modular build).
|
|
|
|
This is inconsistent with how namespace scope static variables are handled -
|
|
where they only appear in the code that includes a header. This functionality
|
|
was implemented to workaround/support the initialization of iostreams
|
|
(implemented as a namespace scope static in the header - only to be provided
|
|
when that specific header is included in the program).
|
|
|
|
BOTH: module asm "narf"
|
|
|
|
FOO: $_Z2f1PKcz = comdat any
|
|
FOO: $_ZN13implicit_dtorD1Ev = comdat any
|
|
USE: $_Z4instIiEvv = comdat any
|
|
USE: $_Z10always_inlv = comdat any
|
|
FOO: $_ZN13implicit_dtorD2Ev = comdat any
|
|
FOO: define weak_odr void @_Z2f1PKcz(ptr noundef %fmt, ...) #{{[0-9]+}} comdat
|
|
FOO: call void @llvm.va_start.p0(ptr %{{[a-zA-Z0-9]*}})
|
|
|
|
Test that implicit special members are emitted into the FOO module if they're
|
|
ODR used there, otherwise emit them linkonce_odr as usual in the use.
|
|
|
|
FIXME: Proactively instantiate any valid implicit special members to emit them into the module object.
|
|
|
|
FOO: define weak_odr void @_ZN13implicit_dtorD1Ev
|
|
FOO: define weak_odr void @_Z4instIfEvv
|
|
FOO: define weak_odr void @_ZN13implicit_dtorD2Ev
|
|
|
|
USE: define linkonce_odr void @_ZN20uninst_implicit_dtorD1Ev
|
|
USE: define linkonce_odr void @_Z4instIiEvv
|
|
USE: define linkonce_odr void @_Z10always_inlv
|
|
USE: define linkonce_odr void @_ZN20uninst_implicit_dtorD2Ev
|
|
|
|
Modular debug info puts the definition of a class defined in a module in that
|
|
module's object. Users of the module only get a declaration.
|
|
|
|
'distinct' is used for definition records (the flags field is empty/unspecified)
|
|
FOO: = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "implicit_dtor"
|
|
Declarations are non-distinct and include the 'DIFlagFwdDecl' flag.
|
|
USE: = !DICompositeType(tag: DW_TAG_structure_type, name: "implicit_dtor", {{.*}}, flags: DIFlagFwdDecl
|