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
86 lines
3.0 KiB
C++
86 lines
3.0 KiB
C++
// Check that the same module map file passed to -fmodule-map-file *and*
|
|
// available from one of the `-fmodule-file` does not allocate extra source
|
|
// location space. This optimization is important for using module maps in
|
|
// large codebases to avoid running out of source location space.
|
|
|
|
// RUN: rm -rf %t && mkdir %t
|
|
// RUN: split-file %s %t
|
|
|
|
// RUN: %clang_cc1 -xc++ -fmodules -fno-implicit-modules -fmodule-map-file=%t/base.map -fmodule-name=base -emit-module %t/base.map -o %t/base.pcm
|
|
// RUN: %clang_cc1 -xc++ -fmodules -fno-implicit-modules \
|
|
// RUN: -fmodule-map-file=%t/base.map -fmodule-map-file=%t/mod1.map \
|
|
// RUN: -fmodule-file=%t/base.pcm \
|
|
// RUN: -fmodule-name=mod1 -emit-module %t/mod1.map -o %t/mod1.pcm
|
|
// RUN: %clang_cc1 -xc++ -fmodules -fno-implicit-modules \
|
|
// RUN: -fmodule-map-file=%t/base.map -fmodule-map-file=%t/mod1.map -fmodule-map-file=%t/mod2.map \
|
|
// RUN: -fmodule-file=%t/mod1.pcm \
|
|
// RUN: -fmodule-name=mod2 -emit-module %t/mod2.map -o %t/mod2.pcm
|
|
// RUN: %clang_cc1 -xc++ -fmodules -fno-implicit-modules \
|
|
// RUN: -fmodule-map-file=%t/base.map -fmodule-map-file=%t/mod2.map -fmodule-map-file=%t/mod3.map \
|
|
// RUN: -fmodule-file=%t/mod2.pcm \
|
|
// RUN: -fmodule-name=mod3 -emit-module %t/mod3.map -o %t/mod3.pcm
|
|
// RUN: %clang_cc1 -xc++ -fmodules -fno-implicit-modules \
|
|
// RUN: -fmodule-map-file=%t/base.map -fmodule-map-file=%t/mod3.map -fmodule-map-file=%t/mod4.map \
|
|
// RUN: -fmodule-file=%t/mod3.pcm \
|
|
// RUN: -fmodule-name=mod4 -emit-module %t/mod4.map -o %t/mod4.pcm
|
|
// RUN: %clang_cc1 -xc++ -fmodules -fno-implicit-modules -fmodule-map-file=%t/base.map -fmodule-map-file=%t/mod4.map -fmodule-file=%t/mod4.pcm -fsyntax-only -verify %t/check_slocs.cc
|
|
|
|
//--- base.map
|
|
module base { header "vector.h" }
|
|
//--- mod1.map
|
|
module mod1 { header "mod1.h" }
|
|
//--- mod2.map
|
|
module mod2 { header "mod2.h" }
|
|
//--- mod3.map
|
|
module mod3 { header "mod3.h" }
|
|
//--- mod4.map
|
|
module mod4 { header "mod4.h" }
|
|
//--- check_slocs.cc
|
|
#include "mod4.h"
|
|
#pragma clang __debug sloc_usage // expected-remark {{source manager location address space usage}}
|
|
// expected-note@* {{% of available space}}
|
|
|
|
// Module map files files that were specified on the command line are entered twice (once when parsing command-line, once loaded from the .pcm)
|
|
// Those that not specified on the command line must be entered once.
|
|
|
|
// expected-note@base.map:1 {{file entered 2 times}}
|
|
// expected-note@mod4.map:1 {{file entered 2 times}}
|
|
// expected-note@mod1.map:1 {{file entered 1 time}}
|
|
// expected-note@mod2.map:1 {{file entered 1 time}}
|
|
// expected-note@mod3.map:1 {{file entered 1 time}}
|
|
// expected-note@* + {{file entered}}
|
|
|
|
|
|
//--- vector.h
|
|
#ifndef VECTOR_H
|
|
#define VECTOR_H
|
|
#endif
|
|
|
|
//--- mod1.h
|
|
#ifndef MOD1
|
|
#define MOD1
|
|
#include "vector.h"
|
|
int mod1();
|
|
#endif
|
|
//--- mod2.h
|
|
#ifndef MOD2
|
|
#define MOD2
|
|
#include "vector.h"
|
|
#include "mod1.h"
|
|
int mod2();
|
|
#endif
|
|
//--- mod3.h
|
|
#ifndef MOD3
|
|
#define MOD3
|
|
#include "vector.h"
|
|
#include "mod2.h"
|
|
int mod3();
|
|
#endif
|
|
//--- mod4.h
|
|
#ifndef MOD4
|
|
#define MOD4
|
|
#include "vector.h"
|
|
#include "mod3.h"
|
|
int mod4();
|
|
#endif
|