Recognize new DWARF5/GCC5 DW_LANG Fortran 2003 and Fortran 2008 standards.

Message ID 1423520450-31303-1-git-send-email-mjw@redhat.com
State New, archived
Headers

Commit Message

Mark Wielaard Feb. 9, 2015, 10:20 p.m. UTC
  DWARFv5 defines and GCC5 may output two new DW_LANG constants for the
Fortran 2003 and Fortran 2008 standards. Recognize both as variants of
language_fortran.

gdb/ChangeLog:

	* dwarf2read.c (set_cu_language): Recognize DW_LANG_Fortran03 and
	DW_LANG_Fortran08 as language_fortran.

include/ChangeLog

	* dwarf2.h: Add DW_LANG_Fortran03 and DW_LANG_Fortran08.

http://dwarfstd.org/ShowIssue.php?issue=141121.1
The dwarf2.h from gcc already contains the same constant definitions.
  

Comments

Joel Brobecker Feb. 10, 2015, 9:11 a.m. UTC | #1
On Mon, Feb 09, 2015 at 11:20:50PM +0100, Mark Wielaard wrote:
> DWARFv5 defines and GCC5 may output two new DW_LANG constants for the
> Fortran 2003 and Fortran 2008 standards. Recognize both as variants of
> language_fortran.
> 
> gdb/ChangeLog:
> 
> 	* dwarf2read.c (set_cu_language): Recognize DW_LANG_Fortran03 and
> 	DW_LANG_Fortran08 as language_fortran.
> include/ChangeLog
> 
> 	* dwarf2.h: Add DW_LANG_Fortran03 and DW_LANG_Fortran08.
>
> http://dwarfstd.org/ShowIssue.php?issue=141121.1
> The dwarf2.h from gcc already contains the same constant definitions.

OK.

Note that changes approved in gcc's include/ are pre-approved to
be applied on their own in the binutils-gdb.git repository at
the same time they are applied on the GCC side. Otherwise,
there are some period scripts that resync the two copies. But
I'm not sure whether that's well controlled or not and what
the frequency is. I personally usually push to both repositories
at the same time, mostly to avoid potential extra work for someone
else...
  

Patch

diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index f7b9b90..db35e7e 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -16925,6 +16925,8 @@  set_cu_language (unsigned int lang, struct dwarf2_cu *cu)
     case DW_LANG_Fortran77:
     case DW_LANG_Fortran90:
     case DW_LANG_Fortran95:
+    case DW_LANG_Fortran03:
+    case DW_LANG_Fortran08:
       cu->language = language_fortran;
       break;
     case DW_LANG_Go:

diff --git a/include/dwarf2.h b/include/dwarf2.h
index 791ef56..4ada871 100644
--- a/include/dwarf2.h
+++ b/include/dwarf2.h
@@ -310,6 +310,8 @@  enum dwarf_source_language
     DW_LANG_C_plus_plus_11 = 0x001a, /* dwarf5.20141029.pdf DRAFT */
     DW_LANG_C11 = 0x001d,
     DW_LANG_C_plus_plus_14 = 0x0021,
+    DW_LANG_Fortran03 = 0x0022,
+    DW_LANG_Fortran08 = 0x0023,
 
     DW_LANG_lo_user = 0x8000,	/* Implementation-defined range start.  */
     DW_LANG_hi_user = 0xffff,	/* Implementation-defined range start.  */