GCC 9.1


GCC 9.1

No dia 3 de maio, foi liberada a primeira versão pública do GCC 9: GCC 9.1.
Ela contém muitas melhorias e adições significativas em comparação com a oitava
versão.

Mudanças gerais

Opções
Novas funções embutidas
Novo atributo
Outro

Várias melhorias na geração de código relacionadas a:

  • geração de estruturas switch;
  • otimizações interprocedurais;
  • otimização baseada em informações de perfil;
  • otimização em tempo de link (LTO);

Além disso, o formato interno do gcov agora é JSON, e a nova opção —use-hotness-colors ativa o colorido das linhas de código dependendo da frequência de uso.

Línguas

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

Linguagens semelhantes ao C
  • Implementado suporte parcial ao OpenMP 5.0;
  • Adicionada a função __builtin_convertvector;
  • Adicionado aviso -Waddress-of-packed-member;
  • Melhorias em vários avisos existentes;
  • O texto de erro ao passar um número errado de argumentos para um macro agora inclui a declaração do próprio macro;
  • Melhorias nas sugestões de correção de erros de digitação.
C
  • Suporte a _Static_assert com um argumento para -std=c2x (o futuro padrão C);
  • Novo aviso -Wabsolute-value, que captura o tipo de argumento incorreto para funções como abs().
C++
  • Novos avisos: -Wdeprecated-copy,
    -Winit-list-lifetime,
    -Wredundant-move,
    -Wpessimizing-move,
    -Wclass-conversion;
  • Estamos trabalhando na implementação de novas funcionalidades do futuro padrão C++ 2a;
  • O frontend agora mantém informações mais precisas sobre vários elementos do código-fonte, permitindo uma exibição mais detalhada nas diagnósticas;
  • As diagnósticas foram aprimoradas para funções sobrecarregadas, operadores binários, chamadas de função e strings que definem formato;
  • Correções automáticas suportadas por alguns ambientes de desenvolvimento foram adicionadas para vários erros populares (falta de parênteses, namespaces, erros de digitação, etc.).
libstdc++
  • A implementação do C++17 não é mais experimental;
  • Algoritmos paralelos, <execution>, <memory_resource>, e <filesystem> não requer mais -lstdc++fs;
  • O suporte experimental ao C++ 2a foi aprimorado (<bit>, <version>, std::bind_front, etc.);
  • Suporte para abertura de streams de arquivos no Windows, cujos caminhos contêm caracteres fora do char;
  • Suporte inicial ao <filesystem> no Windows;
  • Suporte inicial ao Networking TS.
D

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

Fortran
  • Suporte total para entrada/saída assíncrona;
  • Implementado o argumento BACK para MINLOC e MAXLOC;
  • Implementadas as funções FINDLOC e IS_CONTIGUOUS;
  • Implementada a sintaxe de acesso a partes compostas de números complexos: c%re e c%im;
  • Implementada a sintaxe str%len e a%kind;
  • Implementados descritores C e o cabeçalho ISO_Fortran_binding.h;
  • Os requisitos para o resultado das funções MAX e MIN foram reduzidos quando um dos argumentos é NaN;
  • Foi adicionada a opção -fdec-include;
  • Adicionada a diretiva BUILTIN.
libgccjit

Outro

Várias mudanças específicas de arquitetura e sistema operacional.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster