https://github.com/kish1n updated https://github.com/llvm/llvm-project/pull/146841
>From 4463daf4a8a42693fe5ed781356d02797e0fdef9 Mon Sep 17 00:00:00 2001 From: Ashwin Banwari <ashwinkbanw...@gmail.com> Date: Thu, 3 Jul 2025 02:47:05 -0700 Subject: [PATCH 1/2] add test for P1979 to prove correctness --- clang/test/SemaCXX/P1979.cpp | 40 ++++++++++++++++++++++++++++++++++++ clang/www/cxx_status.html | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 clang/test/SemaCXX/P1979.cpp diff --git a/clang/test/SemaCXX/P1979.cpp b/clang/test/SemaCXX/P1979.cpp new file mode 100644 index 0000000000000..9c8d02ed28f94 --- /dev/null +++ b/clang/test/SemaCXX/P1979.cpp @@ -0,0 +1,40 @@ +// RUN: rm -rf %t +// RUN: split-file %s %t + + +// RUN: %clang_cc1 -std=c++20 -verify -emit-module-interface %t/A.cpp -o %t/A.pcm +// RUN: %clang_cc1 -std=c++20 -verify -emit-module-interface %t/myV.cpp -o %t/myV.pcm +// RUN: %clang_cc1 -std=c++20 -verify -emit-module-interface -fmodule-file=V=%t/myV.pcm %t/partition.cpp -o %t/partition.pcm +// RUN: %clang_cc1 -std=c++20 -fsyntax-only -verify -fmodule-file=V=%t/myV.pcm -fmodule-file=A=%t/A.pcm -fmodule-file=A:partition=%t/partition.pcm %t/interface.cpp + +//--- A.cpp +// expected-no-diagnostics +export module A; + +//--- myV.cpp +// expected-no-diagnostics +export module V; + +export struct myV{}; + +//--- uses_vector.h +// expected-no-diagnostics +#ifndef x +#define x + +import V; +#endif + +//--- partition.cpp +// expected-no-diagnostics +module; +#include "uses_vector.h" // textually expands to import V; +module A:partition; + +//--- interface.cpp +module; +// #include "uses_vector.h" +module A; +import :partition; +myV V; // expected-error {{declaration of 'myV' must be imported from module 'V' before it is required}} + // expected-n...@myv.cpp:4 {{declaration here is not visible}} diff --git a/clang/www/cxx_status.html b/clang/www/cxx_status.html index e5f51bfb2e36e..831f79f7cf17a 100755 --- a/clang/www/cxx_status.html +++ b/clang/www/cxx_status.html @@ -923,7 +923,7 @@ <h2 id="cxx20">C++20 implementation status</h2> </tr> <tr> <!-- from Belfast --> <td><a href="https://wg21.link/p1979r0">P1979R0</a></td> - <td class="none" align="center">No</td> + <td class="full" align="center">Clang 17</td> </tr> <tr> <!-- from Prague --> <td><a href="https://wg21.link/p1779r3">P1779R3</a></td> >From e08571933545fac9a8bcee9c48a9ca23c5f7b89b Mon Sep 17 00:00:00 2001 From: Ashwin Banwari <ashwinkbanw...@gmail.com> Date: Thu, 3 Jul 2025 02:58:19 -0700 Subject: [PATCH 2/2] remove comment --- clang/test/SemaCXX/P1979.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/clang/test/SemaCXX/P1979.cpp b/clang/test/SemaCXX/P1979.cpp index 9c8d02ed28f94..65c4b839632c2 100644 --- a/clang/test/SemaCXX/P1979.cpp +++ b/clang/test/SemaCXX/P1979.cpp @@ -32,8 +32,6 @@ module; module A:partition; //--- interface.cpp -module; -// #include "uses_vector.h" module A; import :partition; myV V; // expected-error {{declaration of 'myV' must be imported from module 'V' before it is required}} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits