Add regression test for #15536.
diff --git a/test cases/unit/135 lang regression/intlib.cpp b/test cases/unit/135 lang regression/intlib.cpp new file mode 100644 index 0000000..1633fa1 --- /dev/null +++ b/test cases/unit/135 lang regression/intlib.cpp
@@ -0,0 +1,15 @@ +#include <cstdio> + +#if defined _WIN32 + +extern "C" int __declspec(dllimport) pcre2_function(); + +#else + +extern "C" int pcre2_function(); + +#endif + +int internal_function() { + return pcre2_function(); +}
diff --git a/test cases/unit/135 lang regression/meson.build b/test cases/unit/135 lang regression/meson.build new file mode 100644 index 0000000..647cb9f --- /dev/null +++ b/test cases/unit/135 lang regression/meson.build
@@ -0,0 +1,9 @@ +project('depfallback', 'cpp') + +dep = dependency('pcre2') + +lib = static_library('intlib', 'intlib.cpp', + dependencies: dep) + +executable('p2test', 'p2test.cpp', + link_with: lib)
diff --git a/test cases/unit/135 lang regression/p2test.cpp b/test cases/unit/135 lang regression/p2test.cpp new file mode 100644 index 0000000..85478b2 --- /dev/null +++ b/test cases/unit/135 lang regression/p2test.cpp
@@ -0,0 +1,7 @@ +#include<cstdio> + +int internal_function(); + +int main() { + return internal_function(); +}
diff --git a/test cases/unit/135 lang regression/subprojects/pcre2/meson.build b/test cases/unit/135 lang regression/subprojects/pcre2/meson.build new file mode 100644 index 0000000..2868eb5 --- /dev/null +++ b/test cases/unit/135 lang regression/subprojects/pcre2/meson.build
@@ -0,0 +1,7 @@ +project('pcre2', 'c') + +pcre2_lib = shared_library('pcre2', 'pcre.c') + +pcre2_dep = declare_dependency(link_with: pcre2_lib) + +meson.override_dependency('pcre2', pcre2_dep)
diff --git a/test cases/unit/135 lang regression/subprojects/pcre2/pcre.c b/test cases/unit/135 lang regression/subprojects/pcre2/pcre.c new file mode 100644 index 0000000..8acf747 --- /dev/null +++ b/test cases/unit/135 lang regression/subprojects/pcre2/pcre.c
@@ -0,0 +1,11 @@ +#include<stdlib.h> + +#ifdef _WIN32 + +int __declspec(dllexport) pcre2_function(); + +#endif + +int pcre2_function() { + return 0; +}
diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py index 13cf964..98d8aa6 100644 --- a/unittests/allplatformstests.py +++ b/unittests/allplatformstests.py
@@ -5597,3 +5597,6 @@ output = entry['output'] self.build(output, extra_args=['-j1']) + + def test_link_language_in_subproject(self) -> None: + self.init(os.path.join(self.unit_test_dir, '135 lang regression'), extra_args=['-Dforce_fallback_for=pcre2'])