ust-fd: Add close_range declaration
[lttng-ust.git] / tests / unit / gcc-weak-hidden / main.c
CommitLineData
5a673446 1/*
c0c0989a 2 * SPDX-License-Identifier: MIT
5a673446 3 *
c0c0989a 4 * Copyright (C) 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5a673446 5 */
3227b2b9
MD
6
7#include <stdbool.h>
4b4a1337 8#include "b.h"
5a673446
MD
9#include "tap.h"
10
11#define NUM_TESTS 2
12
3227b2b9
MD
13int testint __attribute__((weak, visibility("hidden")));
14void *testptr __attribute__((weak, visibility("hidden")));
15struct {
16 char a[24];
17} testsym_24_bytes __attribute__((weak, visibility("hidden")));
18
19void *testfct_int(void);
20void *testfct_ptr(void);
21void *testfct_24_bytes(void);
22
23void *testlibfct1_int(void);
24void *testlibfct1_ptr(void);
25void *testlibfct1_24_bytes(void);
26
27void *testlibfct2_int(void);
28void *testlibfct2_ptr(void);
29void *testlibfct2_24_bytes(void);
30
31enum {
32 MATCH_PROGRAM_INT,
33 MATCH_PROGRAM_PTR,
34 MATCH_PROGRAM_24_BYTES,
35 MATCH_LIB_INT,
36 MATCH_LIB_PTR,
37 MATCH_LIB_24_BYTES,
38 NR_MATCH,
39};
5a673446 40
3227b2b9 41static bool match_matrix[NR_MATCH];
5a673446 42
4b4a1337 43int main(void)
5a673446
MD
44{
45 plan_tests(NUM_TESTS);
3227b2b9
MD
46
47 if (testfct_int() == &testint)
48 match_matrix[MATCH_PROGRAM_INT] = true;
49 if (testfct_ptr() == &testptr)
50 match_matrix[MATCH_PROGRAM_PTR] = true;
51 if (testfct_24_bytes() == &testsym_24_bytes)
52 match_matrix[MATCH_PROGRAM_24_BYTES] = true;
53
54 if (testlibfct1_int() == testlibfct2_int())
55 match_matrix[MATCH_LIB_INT] = true;
56 if (testlibfct1_ptr() == testlibfct2_ptr())
57 match_matrix[MATCH_LIB_PTR] = true;
58 if (testlibfct1_24_bytes() == testlibfct2_24_bytes())
59 match_matrix[MATCH_LIB_24_BYTES] = true;
60
61 diag("Address of weak symbol with hidden visibility %s between compile units within same module for main program (4 bytes integer object)",
62 match_matrix[MATCH_PROGRAM_INT] ? "match" : "MISMATCH");
63 diag("Address of weak symbol with hidden visibility %s between compile units within same module for main program (pointer object)",
64 match_matrix[MATCH_PROGRAM_PTR] ? "match" : "MISMATCH");
65 diag("Address of weak symbol with hidden visibility %s between compile units within same module for main program (24 bytes structure object)",
66 match_matrix[MATCH_PROGRAM_24_BYTES] ? "match" : "MISMATCH");
67
68 diag("Address of weak symbol with hidden visibility %s between compile units within same module for shared library (4 bytes integer object)",
69 match_matrix[MATCH_LIB_INT] ? "match" : "MISMATCH");
70 diag("Address of weak symbol with hidden visibility %s between compile units within same module for shared library (pointer object)",
71 match_matrix[MATCH_LIB_PTR] ? "match" : "MISMATCH");
72 diag("Address of weak symbol with hidden visibility %s between compile units within same module for shared library (24 bytes structure object)",
73 match_matrix[MATCH_LIB_24_BYTES] ? "match" : "MISMATCH");
74
c62783e7
MD
75 ok(match_matrix[MATCH_PROGRAM_INT] == match_matrix[MATCH_PROGRAM_PTR],
76 "Weak-hidden behavior is the same for 4 bytes integer and pointer objects within main program");
77 ok(match_matrix[MATCH_LIB_INT] == match_matrix[MATCH_LIB_PTR],
78 "Weak-hidden behavior is the same for 4 bytes integer and pointer objects within shared library");
bf746e7d
MJ
79
80 return exit_status();
5a673446 81}
This page took 0.033758 seconds and 5 git commands to generate.