http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49565

           Summary: character(kind=4) is emitted as DW_ATE_unsigned, not
                    DW_ATE_unsigned_char
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: tro...@gcc.gnu.org


I compiled this program with svn trunk gfortran.
I used -gdwarf-4 -g.

character(kind=4) :: c
character(kind=4,len=5) :: str
c = 4_'\u00AE'
str = 4_'\u00AE\u01DD'
open(6,encoding='utf-8')
print *, c
print *, str
end


Then I examined the DWARF.  'c' is ultimately of type:

 <1><cf>: Abbrev Number: 7 (DW_TAG_base_type)
    <d0>   DW_AT_byte_size   : 4    
    <d1>   DW_AT_encoding    : 7    (unsigned)
    <d2>   DW_AT_name        : (indirect string, offset: 0x67):
character(kind=4)    

I think the encoding should be DW_ATE_unsigned_char instead.

Reply via email to