GCC 9.1


GCC 9.1

O 3 de maio tivo lugar a primeira versión pública da novena versión de GCC: GCC 9.1.
Contén moitas melloras e engadidos significativos en comparación co oitavo
versión.

Cambios xerais

Opcións
Novas funcións integradas
Novo atributo
Outro

Numerosas melloras na xeración de código relacionadas con:

  • xeración de construcións de interruptores;
  • optimizacións interprocedementais;
  • optimización baseada na información de perfil;
  • optimización na fase de montaxe (LTO);

Tamén o formato interno de gcov é agora JSON e a nova opción --use-cores-quentes implica colorear liñas de código en función da frecuencia con que se usan.

Idiomas

Calidade e integridade da implantación OpenACC as linguaxes C, C++ e Fortran seguen mellorando.

Linguaxes tipo C
  • Implementouse un soporte parcial para OpenMP 5.0;
  • Función engadida __vector_converter integrado;
  • Aviso engadido -Enderezo-do-membro-empacado;
  • Melloras nunha serie de avisos existentes;
  • O texto de erro ao pasar o número incorrecto de argumentos a unha macro agora inclúe a declaración da propia macro;
  • Melloras nas suxestións de corrección de erros tipográficos.
C
  • Soporta _Static_assert cun argumento para -std=c2x (futuro estándar C);
  • Novo aviso -Valor-Wabsoluto, que capta o tipo de argumento incorrecto para funcións como abs().
C ++
  • Novos avisos: -Wcopia en desuso,
    -Winit-list-lifetime,
    -Wredundante-movemento,
    -Wpessimizing-move,
    -Wclass-conversión;
  • Estase traballando para implementar novas funcións do estándar futuro C++2a;
  • O frontend agora almacena información máis precisa sobre unha serie de elementos do código fonte, o que lle permite mostrar información máis detallada nos diagnósticos;
  • Diagnóstico mellorado para funcións sobrecargadas, operadores binarios, chamadas de función e cadeas de formato;
  • Engadíronse correccións automáticas soportadas por algúns contornos de desenvolvemento para unha serie de erros populares (faltan parénteses, espazos de nomes, erros tipográficos, etc.).
libstdc++
  • A implementación de C++17 xa non é experimental;
  • Engadidos algoritmos paralelos, , , A xa non require -lstdc++fs;
  • Soporte experimental mellorado para C++2a ( , , std::bind_front, etc.);
  • Soporte para abrir fluxos de ficheiros en Windows cuxos camiños conteñan caracteres que non sexan caracteres;
  • Apoio inicial en Windows;
  • Soporte inicial para Networking TS.
D

A versión en lingua D 2.076 inclúese en GCC.

Fortran
  • Soporte completo para E/S asíncrona;
  • Implementouse o argumento BACK para MINLOC e MAXLOC;
  • Implementáronse as funcións FINDLOC e IS_CONTIGOUS;
  • Implementouse a sintaxe para acceder aos compoñentes dos números complexos: c%re e c%im;
  • Implementouse a sintaxe str%len e a%kind;
  • Implementáronse descritores C e cabeceira ISO_Fortran_binding.h;
  • Requisitos relaxados para o resultado das funcións MAX e MIN cando un dos argumentos é NaN;
  • Opción engadida -fdec-include;
  • Directiva engadida EDIFICADO.
libgccjit

Outro

Moitos cambios específicos de arquitectura e SO.

Fonte: linux.org.ru

Engadir un comentario