Author: Ashwin Kishin Banwari Date: 2025-07-03T19:03:39+08:00 New Revision: ca0b56639cf9f64ad774741b8f892c20d423f5d3
URL: https://github.com/llvm/llvm-project/commit/ca0b56639cf9f64ad774741b8f892c20d423f5d3 DIFF: https://github.com/llvm/llvm-project/commit/ca0b56639cf9f64ad774741b8f892c20d423f5d3.diff LOG: [NFC] [C++] [Modules] Mark P1979 as implemented and add test (#146841) Proposal https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1979r0.html appears to already be implemented as of Clang17. See: https://godbolt.org/z/h59Mvzq6P Added: clang/test/SemaCXX/P1979.cpp Modified: clang/www/cxx_status.html Removed: ################################################################################ diff --git a/clang/test/SemaCXX/P1979.cpp b/clang/test/SemaCXX/P1979.cpp new file mode 100644 index 0000000000000..65c4b839632c2 --- /dev/null +++ b/clang/test/SemaCXX/P1979.cpp @@ -0,0 +1,38 @@ +// 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 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> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits