GCC 9.1


GCC 9.1

3 maja miało miejsce pierwsze publiczne wydanie dziewiątej wersji GCC: GCC 9.1.
Zawiera wiele znaczących ulepszeń i uzupełnień w porównaniu do ósemki
wersja.

Zmiany ogólne

Opcje
Nowe wbudowane funkcje
Nowy atrybut
Inny

Liczne ulepszenia generowania kodu związane z:

  • generowanie konstrukcji przełączników;
  • optymalizacje międzyproceduralne;
  • optymalizacja w oparciu o informacje profilowane;
  • optymalizacja na etapie montażu (LTO);

Również wewnętrznym formatem gcov jest teraz JSON i nowa opcja --użyj-gorących-kolorów polega na kolorowaniu linii kodu w zależności od tego, jak często są używane.

Języki

Jakość i kompletność realizacji OtwórzACC języki C, C++ i Fortran są nadal udoskonalane.

Języki typu C
  • Zaimplementowano częściową obsługę OpenMP 5.0;
  • Dodano funkcję __builtin_convertvector;
  • Dodano ostrzeżenie -Adres-członka-spakowanego;
  • Ulepszenia wielu istniejących ostrzeżeń;
  • Tekst błędu podczas przekazywania nieprawidłowej liczby argumentów do makra zawiera teraz deklarację samego makra;
  • Ulepszenia sugestii poprawiania literówek.
C
  • Obsługa _Static_assert z jednym argumentem dla -std=c2x (przyszły standard C);
  • Nowe ostrzeżenie -Wwartość-absolutna, który przechwytuje niewłaściwy typ argumentu dla funkcji takich jak abs().
C + +
  • Nowe ostrzeżenia: -Wprzestarzała-kopia,
    -Winit-lista-lifetime,
    -Niepotrzebny ruch,
    -Wpesymizujący-ruch,
    -Konwersja klasy W;
  • Trwają prace nad wdrożeniem nowych funkcjonalności z przyszłego standardu C++2a;
  • Frontend przechowuje teraz dokładniejsze informacje o szeregu elementów kodu źródłowego, co pozwala na wyświetlenie bardziej szczegółowych informacji w diagnostyce;
  • Ulepszona diagnostyka przeciążonych funkcji, operatorów binarnych, wywołań funkcji i ciągów formatujących;
  • Dodano automatyczne poprawki obsługiwane przez niektóre środowiska programistyczne dla wielu popularnych błędów (brakujące nawiasy, przestrzenie nazw, literówki itp.).
libstdc++
  • Implementacja C++ 17 nie jest już eksperymentalna;
  • Dodano algorytmy równoległe, , , A nie wymaga już -lstdc++fs;
  • Ulepszona obsługa eksperymentalna dla C++ 2a ( , , std::bind_front itp.);
  • Obsługa otwierania strumieni plików w systemie Windows, których ścieżki zawierają znaki inne niż znakowe;
  • Wstępne wsparcie w systemie Windows;
  • Początkowe wsparcie dla Networking TS.
D

Wersja językowa D 2.076 jest zawarta w GCC.

Fortran
  • Pełna obsługa asynchronicznych wejść/wyjść;
  • Zaimplementowano argument BACK dla MINLOC i MAXLOC;
  • Zaimplementowano funkcje FINDLOC i IS_CONTIGOUS;
  • Zaimplementowano składnię dostępu do składników liczb zespolonych: c%re i c%im;
  • Zaimplementowano składnię str%len i a%kind;
  • Zaimplementowano deskryptory C i nagłówek ISO_Fortran_binding.h;
  • Łagodzone wymagania dotyczące wyniku funkcji MAX i MIN, gdy jednym z argumentów jest NaN;
  • Dodano opcję -fdec-include;
  • Dodano dyrektywę WBUDOWANE.
libgccjit

Inny

Wiele zmian specyficznych dla architektury i systemu operacyjnego.

Źródło: linux.org.ru

Dodaj komentarz