* sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
[fw/sdcc] / src / SDCCdwarf2.c
index 258c74486e9779afe96c730ffc03d759a5b6ad19..0e1d1c325a698d79d6851b9ae5b38fb96af92892 100644 (file)
@@ -1575,7 +1575,7 @@ dwFindFileIndex (char * filename)
       if (!strncmp (includeDir, filename, strlen (includeDir))
           && strlen (filename) > strlen (includeDir))
         {
-         if (*(filename+strlen (includeDir)) == DIR_SEPARATOR_CHAR)
+         if (IS_DIR_SEPARATOR(filename[strlen (includeDir)]))
            break;
        }
     }
@@ -2384,6 +2384,16 @@ dwTagFromType (sym_link * type, dwtag * parent)
                                                    getSize (type)));
                  dwAddTagChild (dwRootTag, tp);
                  break;
+
+               case V_FIXED16X16:
+                 tp = dwNewTag (DW_TAG_base_type);
+                 dwAddTagAttr (tp, dwNewAttrConst (DW_AT_encoding,
+                                                   DW_ATE_float));
+                 dwAddTagAttr (tp, dwNewAttrString (DW_AT_name, "fixed16x16"));
+                 dwAddTagAttr (tp, dwNewAttrConst (DW_AT_byte_size,
+                                                   getSize (type)));
+                 dwAddTagChild (dwRootTag, tp);
+                 break;
                
                case V_CHAR:
                  tp = dwNewTag (DW_TAG_base_type);
@@ -2729,7 +2739,7 @@ int dwWriteFunction(symbol *sym, iCode *ic)
 /*-----------------------------------------------------------------------*/
 int dwWriteEndFunction(symbol *sym, iCode *ic, int offset)
 {
-  char debugSym[SDCC_NAME_MAX];
+  char debugSym[SDCC_NAME_MAX + 1];
   
   if (ic)
     {
@@ -2767,7 +2777,7 @@ int dwWriteEndFunction(symbol *sym, iCode *ic, int offset)
 /*-----------------------------------------------------------------------*/
 int dwWriteLabel(symbol *sym, iCode *ic)
 {
-  char debugSym[SDCC_NAME_MAX];
+  char debugSym[SDCC_NAME_MAX + 1];
   dwtag * tp;
   
   /* ignore the compiler generated labels */