From 060595f0d0f02a871657818bde55c14f164cbb19 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Thu, 27 Oct 2022 18:51:29 +0300 Subject: [PATCH] Add regression test for pch link_whole bug. --- test cases/common/13 pch/linkwhole/lib1.c | 4 ++++ test cases/common/13 pch/linkwhole/lib2.c | 6 ++++++ test cases/common/13 pch/linkwhole/main.c | 9 +++++++++ test cases/common/13 pch/linkwhole/meson.build | 8 ++++++++ test cases/common/13 pch/linkwhole/pch1/pch_one.h | 4 ++++ test cases/common/13 pch/linkwhole/pch2/pch_two.h | 4 ++++ test cases/common/13 pch/meson.build | 4 ++++ 7 files changed, 39 insertions(+) create mode 100644 test cases/common/13 pch/linkwhole/lib1.c create mode 100644 test cases/common/13 pch/linkwhole/lib2.c create mode 100644 test cases/common/13 pch/linkwhole/main.c create mode 100644 test cases/common/13 pch/linkwhole/meson.build create mode 100644 test cases/common/13 pch/linkwhole/pch1/pch_one.h create mode 100644 test cases/common/13 pch/linkwhole/pch2/pch_two.h 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 000000000..b56c17bd8 --- /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 000000000..0a13f6001 --- /dev/null +++ b/test cases/common/13 pch/linkwhole/lib2.c @@ -0,0 +1,6 @@ +#include + +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 000000000..6615a8b35 --- /dev/null +++ b/test cases/common/13 pch/linkwhole/main.c @@ -0,0 +1,9 @@ +#include + +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 000000000..dec76ba40 --- /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 000000000..757c20673 --- /dev/null +++ b/test cases/common/13 pch/linkwhole/pch1/pch_one.h @@ -0,0 +1,4 @@ +#ifndef PCH_ONE +#define PCH_ONE +#include +#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 000000000..1be0a204f --- /dev/null +++ b/test cases/common/13 pch/linkwhole/pch2/pch_two.h @@ -0,0 +1,4 @@ +#ifndef PCH_TWO +#define PCH_TWO +#include +#endif diff --git a/test cases/common/13 pch/meson.build b/test cases/common/13 pch/meson.build index 5ca9ab1d8..4bb3e1f27 100644 --- a/test cases/common/13 pch/meson.build +++ b/test cases/common/13 pch/meson.build @@ -20,3 +20,7 @@ if meson.backend() == 'xcode' else subdir('mixed') endif + +if cc_id == 'msvc' + subdir('linkwhole') +endif