GCC 9.1


GCC 9.1

No dia 3 de maio ocorreu o primeiro lançamento público da nona versão do GCC: GCC 9.1.
Ele contém muitas melhorias e adições significativas em comparação com o oitavo
versão.

Mudanças gerais

Opções
Novos recursos integrados
Novo atributo
Outro

Numerosas melhorias na geração de código relacionadas a:

  • geração de construções de switch;
  • otimizações interprocedimentais;
  • otimização baseada em informações de perfil;
  • otimização na fase de montagem (LTO);

Além disso, o formato interno do gcov agora é JSON, e a nova opção --use-cores-quentes envolve colorir linhas de código com base na frequência com que são usadas.

Idiomas

Qualidade e integridade da implementação OpenACC as linguagens C, C++ e Fortran continuam a melhorar.

Linguagens semelhantes a C
  • O suporte parcial para OpenMP 5.0 foi implementado;
  • Função adicionada __builtin_convertvector;
  • Adicionado aviso -Waddress-of-packed-membro;
  • Melhorias em vários avisos existentes;
  • O texto de erro ao passar o número errado de argumentos para uma macro agora inclui a declaração da própria macro;
  • Melhorias nas sugestões de correção de erros de digitação.
C
  • Suporte _Static_assert com um argumento para -std=c2x (futuro padrão C);
  • Novo aviso -Wabsoluto-valor, que captura o tipo de argumento errado para funções como abs().
C + +
  • Novos avisos: -Wdeprecated-copy,
    -Winit-list-vida,
    -Movimento Wredundant,
    -Wpessimizando-movimento,
    -Wclass-conversão;
  • O trabalho está em andamento para implementar novos recursos do futuro padrão C++2a;
  • O frontend agora armazena informações mais precisas sobre vários elementos do código-fonte, o que permite exibir informações mais detalhadas em diagnósticos;
  • Diagnóstico aprimorado para funções sobrecarregadas, operadores binários, chamadas de função e strings de formato;
  • Adicionadas correções automáticas suportadas por alguns ambientes de desenvolvimento para vários erros populares (parênteses ausentes, namespaces, erros de digitação, etc.).
libstdc ++
  • A implementação do C++ 17 não é mais experimental;
  • Adicionados algoritmos paralelos, , , A não requer mais -lstdc++fs;
  • Suporte experimental aprimorado para C++2a ( , , std::bind_front, etc.);
  • Suporte para abertura de fluxos de arquivos no Windows cujos caminhos contêm caracteres não-char;
  • Suporte inicial no Windows;
  • Suporte inicial para Networking TS.
D

A versão 2.076 da linguagem D está incluída no GCC.

Fortran
  • Suporte completo para E/S assíncrona;
  • Argumento BACK implementado para MINLOC e MAXLOC;
  • Implementadas funções FINDLOC e IS_CONTIGOUS;
  • Foi implementada a sintaxe de acesso aos componentes dos números complexos: c%re e c%im;
  • Sintaxe implementada str%len e a%kind;
  • Implementados descritores C e cabeçalho ISO_Fortran_binding.h;
  • Requisitos relaxados para o resultado das funções MAX e MIN quando um dos argumentos é NaN;
  • Opção adicionada -fdec-incluir;
  • Diretiva adicionada CONSTRUÍDAS EM.
libgccjit

Outro

Muitas mudanças específicas de arquitetura e sistema operacional.

Fonte: linux.org.ru

Adicionar um comentário