| This test is here to check that all constructors and destructors |
| are placed in the .init_array and .fini_array sections. More precisely: |
| |
| - The address of functions with __attribute__((constructor)) are placed in |
| the .init_array section. |
| |
| - The address of functions with __attribute__((destructor)) are placed in |
| the .fini_array section |
| |
| - The address of static C++ constructors are placed in the .init_array |
| section. There is no corresponding entry in the .fini_array for the |
| corresponding destructors. Instead, the constructor must call __cxa_atexit |
| to register the destructors manually. |
| |
| The main idea is to check that there is no .ctors or .dtors section in the |
| generated shared library. |