There are multiple unreferenced variables named allocator_arg and piecewise_construct in resulting executable if project uses STL.
These are only C++ helpers and they are really not referenced anywhere in binary. Moreover it seems that there is one instance of such variables per .cpp file that uses STL.
I believe this is caused by these definitions of allocator_arg and piecewise_construct in standard header files:
const allocator_arg_t allocator_arg = allocator_arg_t();
const piecewise_construct_t piecewise_construct =
This causes that every time STL header is included new instances of const variables are created. The question is why linker is not able to remove those variables from executable.