/Zc:tlsGuards
(Verifique a inicialização do TLS)
A /Zc:tlsGuards
opção do compilador gera verificações de runtime para inicialização de TLS (armazenamento local de thread) em DLLs.
Sintaxe
/Zc:tlsGuards
[-
]
Comentários
A /Zc:tlsGuards
opção do compilador permite verificações de inicialização de variáveis locais de thread em DLLs. Anteriormente, as variáveis thread-local em DLLs não eram inicializadas corretamente. Além do thread que carregava a DLL, elas não eram inicializadas antes do primeiro uso em threads que existiam antes da DLL ser carregada. A /Zc:tlsGuards
opção habilita o código que corrige esse defeito. As variáveis thread-local em uma DLL são inicializadas imediatamente antes de seu primeiro uso nesses threads.
A /Zc:tlsGuards
opção é nova no Visual Studio 2019 versão 16.5. Essa opção está ativada por padrão em todos os modos do compilador. O novo comportamento de teste de inicialização em usos de variáveis locais de thread pode ser desabilitado usando a opção do /Zc:tlsGuards-
compilador. Para desabilitar verificações de variáveis locais de thread específicas, use o [[msvc::no_tls_guard]]
atributo.
Para definir essa opção do compilador no Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.
Em Opções adicionais, adicione
/Zc:tlsGuards
. Escolha OK ou Aplicar para salvar as alterações.