#include #include "protected-data-1.h" int protected_data_1b = 3; int main (void) { int res = 0; /* Check if we get the same address for the protected data symbol. */ if (&protected_data_1a != protected_data_1a_p ()) { puts ("'protected_data_1a' in main and shared library doesn't have same address"); res = 1; } protected_data_1a = -1; if (check_protected_data_1a (-1)) { puts ("'protected_data_1a' in main and shared library doesn't have same value"); res = 1; } set_protected_data_1a (-3); if (protected_data_1a != -3) { puts ("'protected_data_1a' in main and shared library doesn't have same value"); res = 1; } /* Check if we get the different addresses for the protected data symbol. */ if (&protected_data_1b == protected_data_1b_p ()) { puts ("'protected_data_1b' in main and shared library has same address"); res = 1; } protected_data_1b = -10; if (check_protected_data_1b (2)) { puts ("'protected_data_1b' in main and shared library has same address"); res = 1; } set_protected_data_1b (-30); if (protected_data_1b != -10) { puts ("'protected_data_1b' in main and shared library has same address"); res = 1; } if (!res) puts ("PASS"); return res; }