GCC supports translation of error and warning messages into locales. For this to work, the package language-pack-de-base provides the file /usr/share/locale-langpack/de/LC_MESSAGES/gcc.mo. However, the current version of gcc (from package gcc-9, which is a dependency of gcc), is looking for gcc-9.mo.
Here is the relevant part of an strace of gcc:
openat(AT_FDCWD, "/usr/share/locale/de_DE.UTF-8/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de_DE.utf8/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de_DE/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de.UTF-8/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de.utf8/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale/de/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale-langpack/de_DE.UTF-8/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale-langpack/de_DE.utf8/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale-langpack/de_DE/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale-langpack/de.UTF-8/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale-langpack/de.utf8/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/share/locale-langpack/de/LC_MESSAGES/gcc-9.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
When creating a symlink from /usr/share/locale-langpack/de/LC_MESSAGES/gcc-9.mo to /usr/share/locale-langpack/de/LC_MESSAGES/gcc.mo, everything is working fine.
Older version of gcc behave similarly. (They are looking for gcc-7.mo and gcc-8.mo, respectively).