Add regression test for pch link_whole bug.
diff --git a/test cases/common/13 pch/linkwhole/lib1.c b/test cases/common/13 pch/linkwhole/lib1.c new file mode 100644 index 0000000..b56c17b --- /dev/null +++ b/test cases/common/13 pch/linkwhole/lib1.c
@@ -0,0 +1,4 @@ +void func1() { + printf("Calling func2."); + func2(); +}
diff --git a/test cases/common/13 pch/linkwhole/lib2.c b/test cases/common/13 pch/linkwhole/lib2.c new file mode 100644 index 0000000..0a13f60 --- /dev/null +++ b/test cases/common/13 pch/linkwhole/lib2.c
@@ -0,0 +1,6 @@ +#include<stdio.h> + +void func2() { + const char *cl = GetCommandLineA(); + printf("Command line was: %s\n", cl); +}
diff --git a/test cases/common/13 pch/linkwhole/main.c b/test cases/common/13 pch/linkwhole/main.c new file mode 100644 index 0000000..6615a8b --- /dev/null +++ b/test cases/common/13 pch/linkwhole/main.c
@@ -0,0 +1,9 @@ +#include<stdio.h> + +void func1(); + +int main(int argc, char **argv) { + printf("Calling func1\n"); + func1(); + return 0; +}
diff --git a/test cases/common/13 pch/linkwhole/meson.build b/test cases/common/13 pch/linkwhole/meson.build new file mode 100644 index 0000000..dec76ba --- /dev/null +++ b/test cases/common/13 pch/linkwhole/meson.build
@@ -0,0 +1,8 @@ +# https://github.com/mesonbuild/meson/issues/10745 + +l2 = static_library('two', 'lib2.c', c_pch: 'pch2/pch_two.h') +l1 = static_library('one', 'lib1.c', c_pch: 'pch1/pch_one.h', + link_whole: l2) + +executable('linkprog', 'main.c', + link_with: l1)
diff --git a/test cases/common/13 pch/linkwhole/pch1/pch_one.h b/test cases/common/13 pch/linkwhole/pch1/pch_one.h new file mode 100644 index 0000000..757c206 --- /dev/null +++ b/test cases/common/13 pch/linkwhole/pch1/pch_one.h
@@ -0,0 +1,4 @@ +#ifndef PCH_ONE +#define PCH_ONE +#include<stdio.h> +#endif
diff --git a/test cases/common/13 pch/linkwhole/pch2/pch_two.h b/test cases/common/13 pch/linkwhole/pch2/pch_two.h new file mode 100644 index 0000000..1be0a20 --- /dev/null +++ b/test cases/common/13 pch/linkwhole/pch2/pch_two.h
@@ -0,0 +1,4 @@ +#ifndef PCH_TWO +#define PCH_TWO +#include<windows.h> +#endif
diff --git a/test cases/common/13 pch/meson.build b/test cases/common/13 pch/meson.build index 5ca9ab1..4bb3e1f 100644 --- a/test cases/common/13 pch/meson.build +++ b/test cases/common/13 pch/meson.build
@@ -20,3 +20,7 @@ else subdir('mixed') endif + +if cc_id == 'msvc' + subdir('linkwhole') +endif