From f5fd1836836e0d37dea61cc842199713cc0e2fc4 Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Fri, 5 Jan 2024 11:16:53 +0800 Subject: [PATCH] [NFC] [C++20] [Modules] Remove pr60085.cppm with deprecated practice See https://github.com/llvm/llvm-project/issues/60085 for the complete story. Previously I thought the problem got fixed surprisingly. But it is not true. I just tested it with a deprecated method. My bad. Then the deprecated style should be removed and the proper style can't work. So I'll remove the test and reopen that issue to look into it. --- clang/test/Modules/pr60085.cppm | 98 --------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 clang/test/Modules/pr60085.cppm diff --git a/clang/test/Modules/pr60085.cppm b/clang/test/Modules/pr60085.cppm deleted file mode 100644 index fba60120640471..00000000000000 --- a/clang/test/Modules/pr60085.cppm +++ /dev/null @@ -1,98 +0,0 @@ -// RUN: rm -rf %t -// RUN: mkdir %t -// RUN: split-file %s %t -// -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/d.cppm \ -// RUN: -emit-module-interface -o %t/d.pcm -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/c.cppm \ -// RUN: -emit-module-interface -o %t/c.pcm -fmodule-file=%t/d.pcm -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/b.cppm \ -// RUN: -emit-module-interface -o %t/b.pcm -fmodule-file=%t/d.pcm -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/a.cppm \ -// RUN: -emit-module-interface -o %t/a.pcm -fmodule-file=%t/d.pcm \ -// RUN: -fmodule-file=%t/c.pcm -fmodule-file=%t/b.pcm -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/a.pcm \ -// RUN: -S -emit-llvm -disable-llvm-passes -o - | FileCheck %t/a.cppm -// -// Use -fmodule-file== -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/d.cppm \ -// RUN: -emit-module-interface -o %t/d.pcm -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/c.cppm \ -// RUN: -emit-module-interface -o %t/c.pcm -fmodule-file=%t/d.pcm -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/b.cppm \ -// RUN: -emit-module-interface -o %t/b.pcm -fmodule-file=%t/d.pcm -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/a.cppm \ -// RUN: -emit-module-interface -o %t/a.pcm -fmodule-file=%t/d.pcm \ -// RUN: -fmodule-file=%t/c.pcm -fmodule-file=%t/b.pcm -// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/a.pcm \ -// RUN: -S -emit-llvm -disable-llvm-passes -o - | FileCheck %t/a.cppm - -//--- d.cppm -export module d; - -export template -struct integer { - using type = int; - - static constexpr auto value() { - return 0; - } - - friend constexpr void f(integer const x) { - x.value(); - } -}; - -export constexpr void ddd(auto const value) { - f(value); -} - - -template -constexpr auto dd = T(); - -export template -constexpr auto d() { - dd; -} - -//--- c.cppm -export module c; - -import d; - -template -auto cc = T(); - -auto c() { - cc>; - integer().value(); -} - -//--- b.cppm -export module b; - -import d; - -auto b() { - integer::type; -} - -//--- a.cppm -export module a; - -import b; -import c; -import d; - -constexpr void aa() { - d>(); - ddd(integer()); -} - -export extern "C" void a() { - aa(); -} - -// Checks that we emit the IR successfully. -// CHECK: define{{.*}}@a(