brintos

brintos / llvm-project-archived public Read only

0
0
Text · 829 B · d32f946 Raw
66 lines · cpp
1// RUN: rm -rf %t2// RUN: mkdir %t3// RUN: split-file %s %t4 5// RUN: %clang_cc1 -std=c++20 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t %t/main.cpp -o %t/main.o6 7//--- V.h8#ifndef V_H9#define V_H10 11class A {12public:13  constexpr A() { }14  constexpr ~A() { }15};16 17template <typename T>18class V {19public:20  V() = default;21 22  constexpr V(int n, const A& a = A()) {}23};24 25#endif26 27//--- inst1.h28#include "V.h"29 30static void inst1() {31  V<int> v;32}33 34//--- inst2.h35#include "V.h"36 37static void inst2() {38  V<int> v(100);39}40 41//--- module.modulemap42module "M" {43  export *44  module "V.h" {45    export *46    header "V.h"47  }48  module "inst1.h" {49    export *50    header "inst1.h"51  }52}53 54module "inst2.h" {55  export *56  header "inst2.h"57}58 59//--- main.cpp60#include "V.h"61#include "inst2.h"62 63static void m() {64  static V<int> v(100);65}66