pcc added a comment. If you put the constructor in a comdat, will it be preserved on Windows? I believe that the COFF equivalent of .init_array is not treated as a GC root by the linker. Repository: rL LLVM https://reviews.llvm.org/D31358