@needs_dlfcn
def test_dylink_function_pointer_equality(self):
    self.dylink_test('\n      #include <stdio.h>\n      #include "header.h"\n\n      int main() {\n        void* puts_side = get_address();\n        printf("main module address %p.\\n", &puts);\n        printf("side module address address %p.\\n", puts_side);\n        if (&puts == puts_side)\n          printf("success\\n");\n        else\n          printf("failure\\n");\n        return 0;\n      }\n    ', '\n      #include <stdio.h>\n      #include "header.h"\n\n      void* get_address() {\n        return (void*)&puts;\n      }\n    ', 'success', header='extern "C" void* get_address();')
@needs_dlfcn
def test_dylink_function_pointer_equality(self):
    self.dylink_test('\n      #include <stdio.h>\n      #include "header.h"\n\n      int main() {\n        void* puts_side = get_address();\n        printf("main module address %p.\\n", &puts);\n        printf("side module address address %p.\\n", puts_side);\n        if (&puts == puts_side)\n          printf("success\\n");\n        else\n          printf("failure\\n");\n        return 0;\n      }\n    ', '\n      #include <stdio.h>\n      #include "header.h"\n\n      void* get_address() {\n        return (void*)&puts;\n      }\n    ', 'success', header='extern "C" void* get_address();')