Просмотр исходного кода

Merge topic 'cxxmodules-msvc-corner-cases' into release-3.28

e63983956d Tests/CXXModules: enhance `internal-partitions` test
8a658fb9ec Tests/CXXModules: import from an internal partition

Acked-by: Kitware Robot <[email protected]>
Merge-request: !9039
Brad King 2 лет назад
Родитель
Сommit
ee79d06d45

+ 2 - 1
Tests/RunCMake/CXXModules/examples/internal-partitions/CMakeLists.txt

@@ -19,7 +19,8 @@ target_sources(internal-partitions
         "${CMAKE_CURRENT_SOURCE_DIR}"
       FILES
         importable.cxx
-        partition.cxx)
+        partition.cxx
+        internal.cxx)
 target_compile_features(internal-partitions PUBLIC cxx_std_20)
 
 add_executable(exe)

+ 6 - 0
Tests/RunCMake/CXXModules/examples/internal-partitions/importable.cxx

@@ -3,6 +3,12 @@ import :internal_partition;
 
 #include "internal-partitions_export.h"
 
+export struct module_struct
+{
+private:
+  partition_struct p;
+};
+
 export INTERNAL_PARTITIONS_EXPORT int from_import()
 {
   return from_partition();

+ 11 - 0
Tests/RunCMake/CXXModules/examples/internal-partitions/internal.cxx

@@ -0,0 +1,11 @@
+export module internal;
+
+export struct internal_struct
+{
+  int x;
+};
+
+export int from_internal()
+{
+  return 0;
+}

+ 1 - 1
Tests/RunCMake/CXXModules/examples/internal-partitions/main.cxx

@@ -2,5 +2,5 @@ import importable;
 
 int main(int argc, char* argv[])
 {
-  return from_import();
+  return from_import() * sizeof(module_struct);
 }

+ 7 - 1
Tests/RunCMake/CXXModules/examples/internal-partitions/partition.cxx

@@ -1,6 +1,12 @@
 module importable:internal_partition;
+import internal;
+
+struct partition_struct
+{
+  internal_struct i;
+};
 
 int from_partition()
 {
-  return 0;
+  return from_internal();
 }