+
+ if (testfct_int() == &testint)
+ match_matrix[MATCH_PROGRAM_INT] = true;
+ if (testfct_ptr() == &testptr)
+ match_matrix[MATCH_PROGRAM_PTR] = true;
+ if (testfct_24_bytes() == &testsym_24_bytes)
+ match_matrix[MATCH_PROGRAM_24_BYTES] = true;
+
+ if (testlibfct1_int() == testlibfct2_int())
+ match_matrix[MATCH_LIB_INT] = true;
+ if (testlibfct1_ptr() == testlibfct2_ptr())
+ match_matrix[MATCH_LIB_PTR] = true;
+ if (testlibfct1_24_bytes() == testlibfct2_24_bytes())
+ match_matrix[MATCH_LIB_24_BYTES] = true;
+
+ diag("Address of weak symbol with hidden visibility %s between compile units within same module for main program (4 bytes integer object)",
+ match_matrix[MATCH_PROGRAM_INT] ? "match" : "MISMATCH");
+ diag("Address of weak symbol with hidden visibility %s between compile units within same module for main program (pointer object)",
+ match_matrix[MATCH_PROGRAM_PTR] ? "match" : "MISMATCH");
+ diag("Address of weak symbol with hidden visibility %s between compile units within same module for main program (24 bytes structure object)",
+ match_matrix[MATCH_PROGRAM_24_BYTES] ? "match" : "MISMATCH");
+
+ diag("Address of weak symbol with hidden visibility %s between compile units within same module for shared library (4 bytes integer object)",
+ match_matrix[MATCH_LIB_INT] ? "match" : "MISMATCH");
+ diag("Address of weak symbol with hidden visibility %s between compile units within same module for shared library (pointer object)",
+ match_matrix[MATCH_LIB_PTR] ? "match" : "MISMATCH");
+ diag("Address of weak symbol with hidden visibility %s between compile units within same module for shared library (24 bytes structure object)",
+ match_matrix[MATCH_LIB_24_BYTES] ? "match" : "MISMATCH");
+
+ ok(match_matrix[MATCH_PROGRAM_INT] == match_matrix[MATCH_PROGRAM_PTR]
+ && match_matrix[MATCH_PROGRAM_INT] == match_matrix[MATCH_PROGRAM_24_BYTES],
+ "Weak-hidden behavior is the same for 4 bytes integer, pointer, and 24 bytes structure objects for within main program");
+ ok(match_matrix[MATCH_LIB_INT] == match_matrix[MATCH_LIB_PTR]
+ && match_matrix[MATCH_LIB_INT] == match_matrix[MATCH_LIB_24_BYTES],
+ "Weak-hidden behavior is the same for 4 bytes integer, pointer, and 24 bytes structure objects for within shared library");