gdb: Update producer check for Intel compilers.
authorFelix Willgerodt <felix.willgerodt@intel.com>
Thu, 8 Apr 2021 07:15:58 +0000 (09:15 +0200)
committerFelix Willgerodt <felix.willgerodt@intel.com>
Thu, 8 Apr 2021 07:18:55 +0000 (09:18 +0200)
commitfbb3bcfcd8810ecf25a47e71c2f7d46d7a74a6be
tree85085533c98238fa8634419f6ac92bb902ba414c
parent05385fc777d642f4cf3455fc7e0b26faafa4e0f6
gdb: Update producer check for Intel compilers.

The main goal of this patch is to get rid of a warning for the new Fortran
compiler:

(gdb) b 9
warning: Could not recognize version of Intel Compiler in: "Intel(R) Fortran 21.0-2087b"
Breakpoint 1 at 0x4048cf: file comp.f90, line 9.

While trying to fix this I analyzed DW_AT_producer of all latest Intel
compilers for C, C++ and Fortran.  They do no longer necessarily start with
"Intel (R)" nor do they follow the internal and external version number
scheme that the original patch for this check assumed.  Some newer compilers
even contradict the "intermediate" digit in the old version scheme and have
the MINOR number as the second digit, even when having 3 or 4 digits overall.

Therefore I rewrote the check to consider the first MAJOR.MINOR string found
as the version number.  This might not be 100% correct for some older
internal compilers, but the only current user of this function is only
checking for the major version anyway.  Hence this should be reliable enough
and extendable enough going forward.

gdb/ChangeLog:
2021-04-08  Felix Willgerodt  <felix.willgerodt@intel.com>

     * producer.c: (producer_is_icc): Update for new version scheme.
     (producer_parsing_tests): Update names and expected results.
     * producer.h: (producer_is_icc): Update comment accordingly.
gdb/ChangeLog
gdb/producer.c
gdb/producer.h