diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2023-12-08 07:26:50 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2023-12-08 07:26:50 +0200 |
commit | 6b542899c41f8dafda07c01105ba0616984ec791 (patch) | |
tree | d1a15a2f80c66d6a4f0aa87652bd731312ab5dd7 | |
parent | f59ecce68b1f274c212a36a07140dba8005e57d9 (diff) |
Re-enable modules tests for MSVC and drop workarounds for old bugs
-rw-r--r-- | tests/cc/modules/common.testscript | 3 | ||||
-rw-r--r-- | tests/cc/modules/modules.testscript | 17 |
2 files changed, 13 insertions, 7 deletions
diff --git a/tests/cc/modules/common.testscript b/tests/cc/modules/common.testscript index f2e107f..801cf02 100644 --- a/tests/cc/modules/common.testscript +++ b/tests/cc/modules/common.testscript @@ -25,7 +25,8 @@ cxx.features.symexport = true # Note: there are some issues with enabling modules in Apple Clang 15 so # for now we only test vanilla Clang. # -if ($cxx.id == 'gcc' || \ +if ($cxx.id == 'gcc' || \ + $cxx.id == 'msvc' || \ ($cxx.id == 'clang' && $cxx.version.major >= 16)) cxx.features.modules = true diff --git a/tests/cc/modules/modules.testscript b/tests/cc/modules/modules.testscript index 7e860fd..c286c1f 100644 --- a/tests/cc/modules/modules.testscript +++ b/tests/cc/modules/modules.testscript @@ -205,8 +205,6 @@ $* test clean <<EOI : : Test global module fragment/leading module marker (module;). : -if ($cxx.id != 'msvc') # Disabled for MSVC due to issue 845845. @@ TMP revise -{ cat <<EOI >=g.hxx; void g (); EOI @@ -220,7 +218,6 @@ ln -s ../core.cxx ../driver.cxx ./; $* test clean <<EOI exe{test}: cxx{driver} {mxx cxx}{core} EOI -} : re-export : @@ -371,20 +368,28 @@ cat <<EOI >=core.mxx; export __symexport int f (int); - __symexport int g_impl (int i) {return i - 1;} + __symexport int g_impl (int i); export __symexport inline int g (int i) {return g_impl (i);} + + export __symexport int v1 = 1; + export __symexport extern int v2; EOI ln -s ../core.cxx core-f.cxx; cat <<EOI >=core-g.cxx; module foo.core; int g_impl (int i) {return i - 1;} + int v = 1; + EOI +cat <<EOI >=core-v.cxx; + module foo.core; + int v2 = -1; EOI cat <<EOI >=driver.cxx; import foo.core; - int main (int argc, char*[]) {return f (argc) + g (argc);} + int main (int argc, char*[]) {return f (argc) + g (argc) + v1 + v2;} EOI $* test clean <<EOI ./: lib{foo} exe{test} # Full build. exe{test}: cxx{driver} lib{foo} - lib{foo}: mxx{core} cxx{core-f} # @@ VC: core-g + lib{foo}: mxx{core} cxx{core-g core-f core-v} EOI |