Lines Matching refs:info

294 ieee_error (struct ieee_info *info, const bfd_byte *p, const char *s)
297 fprintf (stderr, "%s: 0x%lx: %s (0x%x)\n", bfd_get_filename (info->abfd),
298 (unsigned long) (p - info->bytes), s, *p);
300 fprintf (stderr, "%s: %s\n", bfd_get_filename (info->abfd), s);
306 ieee_eof (struct ieee_info *info)
308 ieee_error (info, (const bfd_byte *) NULL,
328 ieee_read_number (struct ieee_info *info, const bfd_byte **pp, bfd_vma *pv)
330 return ieee_read_optional_number (info, pp, pv, (bfd_boolean *) NULL);
337 ieee_read_optional_number (struct ieee_info *info, const bfd_byte **pp,
342 if (*pp >= info->pend)
349 ieee_eof (info);
369 if (*pp + i - 1 >= info->pend)
371 ieee_eof (info);
396 ieee_error (info, *pp - 1, _("invalid number"));
403 ieee_read_id (struct ieee_info *info, const bfd_byte **pp,
406 return ieee_read_optional_id (info, pp, pname, pnamlen, (bfd_boolean *) NULL);
413 ieee_read_optional_id (struct ieee_info *info, const bfd_byte **pp,
420 if (*pp >= info->pend)
422 ieee_eof (info);
449 ieee_error (info, *pp - 1, _("invalid string length"));
453 if ((unsigned long) (info->pend - *pp) < len)
455 ieee_eof (info);
476 ieee_read_expression (struct ieee_info *info, const bfd_byte **pp,
497 if (! ieee_read_optional_number (info, pp, &val, &present))
504 ieee_error (info, start, _("expression stack overflow"));
524 ieee_error (info, start, _("unsupported IEEE expression operator"));
532 if (! ieee_read_number (info, pp, &indx))
534 for (s = info->abfd->sections; s != NULL; s = s->next)
539 ieee_error (info, start, _("unknown section"));
545 ieee_error (info, start, _("expression stack overflow"));
549 *esp++ = bfd_get_section_vma (info->abfd, s);
560 ieee_error (info, start, _("expression stack underflow"));
574 ieee_error (info, expr_start, _("expression stack mismatch"));
586 ieee_builtin_type (struct ieee_info *info, const bfd_byte *p,
594 && info->types.builtins[indx] != DEBUG_TYPE_NULL)
595 return info->types.builtins[indx];
597 dhandle = info->dhandle;
602 ieee_builtin_type (info, p, indx - 32));
604 info->types.builtins[indx] = type;
611 ieee_error (info, p, _("unknown builtin type"));
688 ieee_builtin_type (info, p,
691 ieee_builtin_type (info, p,
756 ieee_error (info, p, _("BCD float type not supported"));
765 info->types.builtins[indx] = type;
775 ieee_alloc_type (struct ieee_info *info, unsigned int indx, bfd_boolean ref)
781 if (indx >= info->types.alloc)
783 nalloc = info->types.alloc;
789 info->types.types = ((struct ieee_type *)
790 xrealloc (info->types.types,
791 nalloc * sizeof *info->types.types));
793 memset (info->types.types + info->types.alloc, 0,
794 (nalloc - info->types.alloc) * sizeof *info->types.types);
796 tend = info->types.types + nalloc;
797 for (t = info->types.types + info->types.alloc; t < tend; t++)
800 info->types.alloc = nalloc;
805 t = info->types.types + indx;
810 t->type = debug_make_indirect_type (info->dhandle, t->pslot,
823 ieee_read_type_index (struct ieee_info *info, const bfd_byte **pp,
831 if (! ieee_read_number (info, pp, &indx))
836 *ptype = ieee_builtin_type (info, start, indx);
843 if (! ieee_alloc_type (info, indx, TRUE))
846 *ptype = info->types.types[indx].type;
857 struct ieee_info info;
861 info.dhandle = dhandle;
862 info.abfd = abfd;
863 info.bytes = bytes;
864 info.pend = bytes + len;
865 info.blockstack.bsp = info.blockstack.stack;
866 info.saw_filename = FALSE;
867 info.vars.alloc = 0;
868 info.vars.vars = NULL;
869 info.global_vars = NULL;
870 info.types.alloc = 0;
871 info.types.types = NULL;
872 info.global_types = NULL;
873 info.tags = NULL;
875 info.types.builtins[i] = DEBUG_TYPE_NULL;
878 pend = info.pend;
893 ieee_error (&info, record_start, _("unexpected number"));
900 ieee_error (&info, record_start, _("unexpected record type"));
904 if (! parse_ieee_bb (&info, &p))
909 if (! parse_ieee_be (&info, &p))
914 if (! parse_ieee_nn (&info, &p))
919 if (! parse_ieee_ty (&info, &p))
924 if (! parse_ieee_atn (&info, &p))
930 if (info.blockstack.bsp != info.blockstack.stack)
932 ieee_error (&info, (const bfd_byte *) NULL,
943 parse_ieee_bb (struct ieee_info *info, const bfd_byte **pp)
959 if (! ieee_read_number (info, pp, &size)
960 || ! ieee_read_id (info, pp, &name, &namlen))
973 if (! debug_set_filename (info->dhandle, namcopy))
975 info->saw_filename = TRUE;
978 if (info->vars.vars != NULL)
979 free (info->vars.vars);
980 info->vars.vars = NULL;
981 info->vars.alloc = 0;
982 if (info->types.types != NULL)
983 free (info->types.types);
984 info->types.types = NULL;
985 info->types.alloc = 0;
988 if (info->global_types != NULL)
990 info->types.alloc = info->global_types->alloc;
991 info->types.types = ((struct ieee_type *)
992 xmalloc (info->types.alloc
993 * sizeof (*info->types.types)));
994 memcpy (info->types.types, info->global_types->types,
995 info->types.alloc * sizeof (*info->types.types));
1003 if (! debug_set_filename (info->dhandle, "*global*"))
1005 info->saw_filename = TRUE;
1020 if (! ieee_read_number (info, pp, &stackspace)
1021 || ! ieee_read_number (info, pp, &typindx)
1022 || ! ieee_read_expression (info, pp, &offset))
1029 return_type = ieee_builtin_type (info, block_start, typindx);
1036 if (! ieee_alloc_type (info, typindx, TRUE))
1039 return_type = info->types.types[typindx].type;
1040 if (debug_get_type_kind (info->dhandle, return_type)
1042 return_type = debug_get_return_type (info->dhandle,
1049 if (! debug_record_function (info->dhandle, namcopy, return_type,
1066 if (! ieee_read_optional_number (info, pp, &ignore, &present))
1075 if (! debug_start_source (info->dhandle, namcopy))
1085 if (! ieee_read_number (info, pp, &stackspace)
1086 || ! ieee_read_number (info, pp, &typindx)
1087 || ! ieee_read_expression (info, pp, &offset))
1094 if (! debug_start_block (info->dhandle, offset))
1115 return_type = ieee_builtin_type (info, block_start,
1123 if (! ieee_alloc_type (info, typindx, TRUE))
1126 return_type = info->types.types[typindx].type;
1127 if (debug_get_type_kind (info->dhandle, return_type)
1129 return_type = debug_get_return_type (info->dhandle,
1136 if (! debug_record_function (info->dhandle, namcopy,
1154 if (! info->saw_filename)
1159 if (! debug_set_filename (info->dhandle, namcopy))
1161 info->saw_filename = TRUE;
1164 if (! ieee_read_id (info, pp, &inam, &inamlen)
1165 || ! ieee_read_number (info, pp, &tool_type)
1166 || ! ieee_read_optional_id (info, pp, &vstr, &vstrlen, &present))
1172 if (! ieee_read_optional_number (info, pp, &ignore, &present))
1187 if (! ieee_read_number (info, pp, &sectype)
1188 || ! ieee_read_number (info, pp, &secindx)
1189 || ! ieee_read_expression (info, pp, &offset)
1190 || ! ieee_read_optional_number (info, pp, &map, &present))
1196 ieee_error (info, block_start, _("unknown BB type"));
1203 if (info->blockstack.bsp >= info->blockstack.stack + BLOCKSTACK_SIZE)
1205 ieee_error (info, (const bfd_byte *) NULL, _("stack overflow"));
1209 info->blockstack.bsp->kind = b;
1211 info->blockstack.bsp->filename = namcopy;
1212 info->blockstack.bsp->fnindx = fnindx;
1213 info->blockstack.bsp->skip = skip;
1214 ++info->blockstack.bsp;
1222 parse_ieee_be (struct ieee_info *info, const bfd_byte **pp)
1226 if (info->blockstack.bsp <= info->blockstack.stack)
1228 ieee_error (info, *pp, _("stack underflow"));
1231 --info->blockstack.bsp;
1233 switch (info->blockstack.bsp->kind)
1237 contents of info->vars. This is because the variable indices
1242 info->global_vars = ((struct ieee_vars *)
1243 xmalloc (sizeof *info->global_vars));
1244 info->global_vars->alloc = info->vars.alloc;
1245 info->global_vars->vars = ((struct ieee_var *)
1246 xmalloc (info->vars.alloc
1247 * sizeof (*info->vars.vars)));
1248 memcpy (info->global_vars->vars, info->vars.vars,
1249 info->vars.alloc * sizeof (*info->vars.vars));
1251 /* We also copy out the non builtin parts of info->types, since
1253 info->global_types = ((struct ieee_types *)
1254 xmalloc (sizeof *info->global_types));
1255 info->global_types->alloc = info->types.alloc;
1256 info->global_types->types = ((struct ieee_type *)
1257 xmalloc (info->types.alloc
1258 * sizeof (*info->types.types)));
1259 memcpy (info->global_types->types, info->types.types,
1260 info->types.alloc * sizeof (*info->types.types));
1261 memset (info->global_types->builtins, 0,
1262 sizeof (info->global_types->builtins));
1268 if (! ieee_read_expression (info, pp, &offset))
1270 if (! info->blockstack.bsp->skip)
1272 if (! debug_end_function (info->dhandle, offset + 1))
1280 if (! ieee_read_expression (info, pp, &offset))
1282 if (! debug_end_block (info->dhandle, offset + 1))
1289 if (info->blockstack.bsp > info->blockstack.stack)
1293 bl = info->blockstack.bsp;
1299 if (! debug_start_source (info->dhandle, bl->filename))
1304 while (bl != info->blockstack.stack);
1309 if (! ieee_read_expression (info, pp, &offset))
1325 parse_ieee_nn (struct ieee_info *info, const bfd_byte **pp)
1334 if (! ieee_read_number (info, pp, &varindx)
1335 || ! ieee_read_id (info, pp, &name, &namlen))
1340 ieee_error (info, nn_start, _("illegal variable index"));
1345 if (varindx >= info->vars.alloc)
1349 alloc = info->vars.alloc;
1354 info->vars.vars = ((struct ieee_var *)
1355 xrealloc (info->vars.vars,
1356 alloc * sizeof *info->vars.vars));
1357 memset (info->vars.vars + info->vars.alloc, 0,
1358 (alloc - info->vars.alloc) * sizeof *info->vars.vars);
1359 info->vars.alloc = alloc;
1362 info->vars.vars[varindx].name = name;
1363 info->vars.vars[varindx].namlen = namlen;
1371 parse_ieee_ty (struct ieee_info *info, const bfd_byte **pp)
1383 if (! ieee_read_number (info, pp, &typeindx))
1388 ieee_error (info, ty_start, _("illegal type index"));
1393 if (! ieee_alloc_type (info, typeindx, FALSE))
1398 ieee_error (info, *pp, _("unknown TY code"));
1405 if (! ieee_read_number (info, pp, &varindx))
1410 ieee_error (info, ty_var_start, _("illegal variable index"));
1415 if (varindx >= info->vars.alloc || info->vars.vars[varindx].name == NULL)
1417 ieee_error (info, ty_var_start, _("undefined variable in TY"));
1423 if (! ieee_read_number (info, pp, &tc))
1426 dhandle = info->dhandle;
1435 ieee_error (info, ty_code_start, _("unknown TY code"));
1443 if (! ieee_read_number (info, pp, &size))
1456 if (! ieee_read_type_index (info, pp, &ele_type)
1457 || ! ieee_read_number (info, pp, &lower)
1458 || ! ieee_read_number (info, pp, &upper))
1461 ieee_builtin_type (info, ty_code_start,
1480 if (! ieee_read_number (info, pp, &size))
1494 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
1531 if (! ieee_read_number (info, pp, &size))
1545 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
1549 if (! ieee_read_type_index (info, pp, &ftype)
1550 || ! ieee_read_number (info, pp, &bitpos)
1551 || ! ieee_read_number (info, pp, &bitsize))
1595 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
1599 if (! ieee_read_number (info, pp, &val))
1637 if (! ieee_read_type_index (info, pp, &t))
1648 if (! ieee_read_number (info, pp, &low)
1649 || ! ieee_read_number (info, pp, &high)
1650 || ! ieee_read_number (info, pp, &signedp)
1651 || ! ieee_read_number (info, pp, &size))
1670 if (! ieee_read_number (info, pp, &size))
1686 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
1690 if (! ieee_read_number (info, pp, &tindx)
1691 || ! ieee_read_number (info, pp, &offset))
1696 ftype = ieee_builtin_type (info, ty_code_start, tindx);
1705 if (! ieee_alloc_type (info, tindx, TRUE))
1707 t = info->types.types + tindx;
1738 if (! ieee_read_type_index (info, pp, &type))
1755 if (! ieee_read_number (info, pp, &attr)
1756 || ! ieee_read_type_index (info, pp, &rtype)
1757 || ! ieee_read_number (info, pp, &nargs))
1764 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
1769 pv = info->vars.vars + varindx;
1799 if (! ieee_read_type_index (info, pp, &etype)
1800 || ! ieee_read_number (info, pp, &high))
1804 ieee_builtin_type (info, ty_code_start,
1819 if (! ieee_read_id (info, pp, &name, &namlen))
1828 ieee_error (info, ty_code_start, _("Pascal file name not supported"));
1838 if (! ieee_read_number (info, pp, &signedp)
1839 || ! ieee_read_number (info, pp, &bitsize))
1845 if (! ieee_read_optional_number (info, pp, &dummy, &present))
1856 if (! ieee_read_type_index (info, pp, &type))
1869 if (! ieee_read_number (info, pp, &kind)
1870 || ! ieee_read_type_index (info, pp, &t))
1876 ieee_error (info, ty_start, _("unsupported qualifier"));
1896 if (! ieee_read_number (info, pp, &size)
1897 || ! ieee_read_type_index (info, pp, &etype))
1918 pv = info->vars.vars + varindx;
1920 if (! ieee_read_number (info, pp, &attr)
1921 || ! ieee_read_number (info, pp, &frame_type)
1922 || ! ieee_read_number (info, pp, &push_mask)
1923 || ! ieee_read_type_index (info, pp, &rtype)
1924 || ! ieee_read_number (info, pp, &nargs))
1938 if (! ieee_read_type_index (info, pp, arg_types + i))
1984 if (! ieee_read_number (info, pp, &level)
1985 || ! ieee_read_optional_number (info, pp, &father, &present))
2014 info->vars.vars[varindx].type = type;
2017 && info->vars.vars[varindx].namlen > 0)
2021 name = savestring (info->vars.vars[varindx].name,
2022 info->vars.vars[varindx].namlen);
2037 it->next = info->tags;
2038 info->tags = it;
2051 info->types.types[typeindx].type = type;
2052 info->types.types[typeindx].arg_slots = arg_slots;
2053 info->types.types[typeindx].bitsize = type_bitsize;
2059 if (info->types.types[typeindx].pslot != NULL)
2060 *info->types.types[typeindx].pslot = type;
2068 parse_ieee_atn (struct ieee_info *info, const bfd_byte **pp)
2085 if (! ieee_read_number (info, pp, &varindx)
2086 || ! ieee_read_type_index (info, pp, &type))
2091 if (! ieee_read_number (info, pp, &atn_code))
2105 return ieee_read_number (info, pp, &v);
2107 ieee_error (info, atn_start, _("illegal variable index"));
2113 if (varindx >= info->vars.alloc
2114 || info->vars.vars[varindx].name == NULL)
2120 if (varindx >= info->vars.alloc)
2124 alloc = info->vars.alloc;
2129 info->vars.vars = ((struct ieee_var *)
2130 xrealloc (info->vars.vars,
2132 * sizeof *info->vars.vars)));
2133 memset (info->vars.vars + info->vars.alloc, 0,
2134 ((alloc - info->vars.alloc)
2135 * sizeof *info->vars.vars));
2136 info->vars.alloc = alloc;
2139 pvar = info->vars.vars + varindx;
2145 ieee_error (info, atn_start, _("undefined variable in ATN"));
2150 pvar = info->vars.vars + varindx;
2158 dhandle = info->dhandle;
2188 ieee_error (info, atn_code_start, _("unknown ATN type"));
2193 if (! ieee_read_number (info, pp, &v))
2204 if (! ieee_read_number (info, pp, &v))
2212 ieee_regno_to_genreg (info->abfd, v));
2216 if (! ieee_require_asn (info, pp, &v))
2221 if (info->blockstack.bsp <= info->blockstack.stack)
2224 blocktype = info->blockstack.bsp[-1].kind;
2251 if (! ieee_read_number (info, pp, &v)
2252 || ! ieee_read_number (info, pp, &v2)
2253 || ! ieee_read_optional_number (info, pp, &v3, &present))
2257 if (! ieee_read_optional_number (info, pp, &v4, &present))
2264 if (! ieee_require_asn (info, pp, &v3))
2273 if (! ieee_require_asn (info, pp, &v))
2284 if (! ieee_read_number (info, pp, &v))
2294 if (! ieee_read_number (info, pp, &v)
2295 || ! ieee_read_optional_number (info, pp, &v2, &present))
2310 ieee_error (info, atn_code_start, _("unsupported ATN11"));
2320 if (! ieee_read_number (info, pp, &v)
2321 || ! ieee_read_number (info, pp, &v2)
2322 || ! ieee_read_optional_number (info, pp, &v3, &present))
2326 if (! ieee_read_optional_number (info, pp, &v4, &present))
2330 if (! ieee_read_optional_number (info, pp, &v5, &present))
2337 ieee_error (info, atn_code_start, _("unsupported ATN12"));
2345 if (! ieee_read_number (info, pp, &v)
2346 || ! ieee_read_optional_number (info, pp, &v2, &present))
2350 if (! ieee_read_optional_number (info, pp, &v2, &present))
2354 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
2361 if (! ieee_require_asn (info, pp, &v3))
2370 if (! ieee_read_number (info, pp, &v)
2371 || ! ieee_read_optional_number (info, pp, &v2, &present)
2372 || ! ieee_require_asn (info, pp, &v3))
2387 if (! ieee_read_number (info, pp, &v)
2388 || ! ieee_read_number (info, pp, &v2)
2389 || ! ieee_read_optional_id (info, pp, &name, &namlen, &present))
2396 ieee_error (info, atn_code_start,
2400 return ieee_read_cxx_misc (info, pp, v2);
2410 ieee_error (info, *pp, _("bad misc record"));
2414 if (! ieee_require_atn65 (info, pp, &name, &namlen))
2419 if (! ieee_require_asn (info, pp, &v3))
2435 ieee_read_cxx_misc (struct ieee_info *info, const bfd_byte **pp,
2444 if (! ieee_require_asn (info, pp, &category))
2451 ieee_error (info, start, _("unrecognized C++ misc record"));
2455 if (! ieee_read_cxx_class (info, pp, count))
2469 if (! ieee_require_asn (info, pp, &flags))
2471 if (*pp < info->pend
2474 if (! ieee_require_atn65 (info, pp, &name, &namlen))
2486 if (! ieee_read_cxx_defaults (info, pp, count))
2498 if (! ieee_require_atn65 (info, pp, &name, &namlen)
2499 || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen)
2500 || ! ieee_require_atn65 (info, pp, &class, &classlen)
2501 || ! ieee_require_asn (info, pp, &control))
2509 if (! ieee_read_reference (info, pp))
2521 ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
2550 if (! ieee_require_asn (info, pp, &class))
2554 if (! ieee_require_atn65 (info, pp, &tag, &taglen))
2559 for (it = info->tags; it != NULL; it = it->next)
2566 ieee_error (info, start, _("undefined C++ object"));
2570 dhandle = info->dhandle;
2593 if (! ieee_require_asn (info, pp, &id))
2600 ieee_error (info, spec_start, _("unrecognized C++ object spec"));
2617 if (! ieee_require_asn (info, pp, &flags)
2618 || ! ieee_require_atn65 (info, pp, &basename, &baselen)
2619 || ! ieee_require_asn (info, pp, &cinline)
2620 || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen))
2636 ieee_error (info, start, _("unsupported C++ object type"));
2646 ieee_error (info, start, _("C++ base class not defined"));
2658 ieee_error (info, start, _("C++ object has no fields"));
2676 ieee_error (info, start,
2727 if (! ieee_require_asn (info, pp, &flags)
2728 || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen)
2729 || ! ieee_require_atn65 (info, pp, &mangledname, &mangledlen))
2742 pv = info->vars.vars;
2743 pvend = pv + info->vars.alloc;
2753 ftype = ieee_builtin_type (info, start,
2763 ieee_error (info, start, _("C++ object has no fields"));
2783 ieee_error (info, start,
2825 ieee_error (info, start, _("unknown C++ visibility"));
2859 ieee_error (info, start, _("bad C++ field bit pos or size"));
2897 if (! ieee_require_asn (info, pp, &flags)
2898 || ! ieee_require_atn65 (info, pp, &name, &namlen)
2899 || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen))
2906 if (! ieee_require_asn (info, pp, &voffset))
2910 if (! ieee_require_asn (info, pp, &control))
2922 pv = info->vars.vars;
2923 pvend = pv + info->vars.alloc;
2936 ieee_builtin_type (info, start,
2950 ieee_error (info, start,
2960 ieee_error (info, start,
2975 ieee_error (info, start, _("unknown C++ visibility"));
3000 ieee_error (info, start, _("C++ static virtual method"));
3069 if (! ieee_require_asn (info, pp, &spec))
3078 if (! ieee_require_atn65 (info, pp, &filename, &filenamlen)
3079 || ! ieee_require_asn (info, pp, &lineno))
3088 if (! ieee_require_atn65 (info, pp, &mangled, &mangledlen))
3094 ieee_error (info, start,
3109 if (! ieee_require_atn65 (info, pp, &vname, &vnamelen)
3110 || ! ieee_require_asn (info, pp, &vsize)
3111 || ! ieee_require_atn65 (info, pp, &basename, &baselen)
3112 || ! ieee_require_asn (info, pp, &control))
3134 ieee_error (info, start, _("undefined C++ vtable"));
3186 ieee_read_cxx_defaults (struct ieee_info *info, const bfd_byte **pp,
3200 if (info->blockstack.bsp <= info->blockstack.stack
3201 || info->blockstack.bsp[-1].fnindx == (unsigned int) -1)
3203 ieee_error (info, start, _("C++ default values not in a function"));
3207 if (! ieee_require_atn65 (info, pp, &fnname, &fnlen)
3208 || ! ieee_require_asn (info, pp, &defcount))
3218 if (! ieee_require_asn (info, pp, &type))
3230 if (! ieee_require_asn (info, pp, &val))
3237 if (! ieee_require_atn65 (info, pp, &strval, &strvallen))
3243 ieee_error (info, start, _("unrecognized C++ default type"));
3258 dhandle = info->dhandle;
3259 arg_slots = info->types.types[info->blockstack.bsp[-1].fnindx].arg_slots;
3265 if (! ieee_require_asn (info, pp, &indx))
3274 ieee_error (info, start, _("reference parameter is not a pointer"));
3291 ieee_read_reference (struct ieee_info *info, const bfd_byte **pp)
3302 if (! ieee_require_asn (info, pp, &flags))
3309 if (! ieee_require_atn65 (info, pp, &class, &classlen))
3313 if (! ieee_require_atn65 (info, pp, &name, &namlen))
3333 vars = &info->vars;
3336 vars = info->global_vars;
3356 ieee_error (info, start,
3397 for (it = info->tags; it != NULL; it = it->next)
3408 pf = debug_get_fields (info->dhandle, it->type);
3411 ieee_error (info, start,
3420 fname = debug_get_field_name (info->dhandle, *pf);
3439 ieee_error (info, start, _("C++ reference not found"));
3445 if (debug_get_type_kind (info->dhandle, *pslot) != DEBUG_KIND_POINTER)
3447 ieee_error (info, start, _("C++ reference is not pointer"));
3451 target = debug_get_target_type (info->dhandle, *pslot);
3452 *pslot = debug_make_reference_type (info->dhandle, target);
3462 ieee_require_asn (struct ieee_info *info, const bfd_byte **pp, bfd_vma *pv)
3473 ieee_error (info, start, _("missing required ASN"));
3481 ieee_error (info, start, _("missing required ASN"));
3487 if (! ieee_read_number (info, pp, &varindx))
3490 return ieee_read_expression (info, pp, pv);
3496 ieee_require_atn65 (struct ieee_info *info, const bfd_byte **pp,
3508 ieee_error (info, start, _("missing required ATN65"));
3516 ieee_error (info, start, _("missing required ATN65"));
3521 if (! ieee_read_number (info, pp, &name_indx)
3522 || ! ieee_read_number (info, pp, &type_indx)
3523 || ! ieee_read_number (info, pp, &atn_code))
3530 ieee_error (info, start, _("bad ATN65 record"));
3534 return ieee_read_id (info, pp, pname, pnamlen);
4042 ieee_init_buffer (struct ieee_handle *info ATTRIBUTE_UNUSED,
4057 ieee_change_buffer (struct ieee_handle *info, struct ieee_buflist *buflist)
4070 info->current = buflist;
4071 info->curbuf = buflist->tail;
4079 ieee_append_buffer (struct ieee_handle *info ATTRIBUTE_UNUSED,
4097 #define ieee_write_byte(info, b) \
4098 ((info)->curbuf->c < IEEE_BUFSIZE \
4099 ? ((info)->curbuf->buf[(info)->curbuf->c++] = (b), TRUE) \
4100 : ieee_real_write_byte ((info), (b)))
4103 ieee_real_write_byte (struct ieee_handle *info, int b)
4105 if (info->curbuf->c >= IEEE_BUFSIZE)
4112 if (info->current->head == NULL)
4113 info->current->head = n;
4115 info->current->tail->next = n;
4116 info->current->tail = n;
4117 info->curbuf = n;
4120 info->curbuf->buf[info->curbuf->c] = b;
4121 ++info->curbuf->c;
4129 ieee_write_2bytes (struct ieee_handle *info, int i)
4131 return (ieee_write_byte (info, i >> 8)
4132 && ieee_write_byte (info, i & 0xff));
4138 ieee_write_number (struct ieee_handle *info, bfd_vma v)
4146 return ieee_write_byte (info, (int) v);
4166 if (! ieee_write_byte (info, (int) ieee_number_repeat_start_enum + c))
4170 if (! ieee_write_byte (info, *p))
4180 ieee_write_id (struct ieee_handle *info, const char *s)
4187 if (! ieee_write_byte (info, len))
4192 if (! ieee_write_byte (info, (int) ieee_extension_length_1_enum)
4193 || ! ieee_write_byte (info, len))
4198 if (! ieee_write_byte (info, (int) ieee_extension_length_2_enum)
4199 || ! ieee_write_2bytes (info, len))
4209 if (! ieee_write_byte (info, *s))
4218 ieee_write_asn (struct ieee_handle *info, unsigned int indx, bfd_vma val)
4220 return (ieee_write_2bytes (info, (int) ieee_asn_record_enum)
4221 && ieee_write_number (info, indx)
4222 && ieee_write_number (info, val));
4228 ieee_write_atn65 (struct ieee_handle *info, unsigned int indx, const char *s)
4230 return (ieee_write_2bytes (info, (int) ieee_atn_record_enum)
4231 && ieee_write_number (info, indx)
4232 && ieee_write_number (info, 0)
4233 && ieee_write_number (info, 65)
4234 && ieee_write_id (info, s));
4240 ieee_push_type (struct ieee_handle *info, unsigned int indx,
4253 ts->next = info->type_stack;
4254 info->type_stack = ts;
4262 ieee_pop_type (struct ieee_handle *info)
4264 return ieee_pop_type_used (info, TRUE);
4270 ieee_pop_unused_type (struct ieee_handle *info)
4272 (void) ieee_pop_type_used (info, FALSE);
4278 ieee_pop_type_used (struct ieee_handle *info, bfd_boolean used)
4283 ts = info->type_stack;
4295 if (ieee_buffer_emptyp (&info->types))
4297 if (! ieee_change_buffer (info, &info->types)
4298 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
4299 || ! ieee_write_byte (info, 1)
4300 || ! ieee_write_number (info, 0)
4301 || ! ieee_write_id (info, info->modname))
4304 buflist = &info->types;
4309 if (ieee_buffer_emptyp (&info->global_types))
4311 if (! ieee_change_buffer (info, &info->global_types)
4312 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
4313 || ! ieee_write_byte (info, 2)
4314 || ! ieee_write_number (info, 0)
4315 || ! ieee_write_id (info, ""))
4318 buflist = &info->global_types;
4321 if (! ieee_append_buffer (info, buflist, &ts->type.fndef))
4326 info->type_stack = ts->next;
4334 ieee_add_range (struct ieee_handle *info, bfd_boolean global, bfd_vma low,
4343 plist = &info->global_ranges;
4345 plist = &info->ranges;
4390 ieee_start_range (struct ieee_handle *info, bfd_vma low)
4397 r->next = info->pending_ranges;
4398 info->pending_ranges = r;
4405 ieee_end_range (struct ieee_handle *info, bfd_vma high)
4410 assert (info->pending_ranges != NULL);
4411 r = info->pending_ranges;
4413 info->pending_ranges = r->next;
4415 return ieee_add_range (info, FALSE, low, high);
4421 ieee_define_type (struct ieee_handle *info, unsigned int size,
4424 return ieee_define_named_type (info, (const char *) NULL,
4432 ieee_define_named_type (struct ieee_handle *info, const char *name,
4444 type_indx = info->type_indx;
4445 ++info->type_indx;
4448 name_indx = info->name_indx;
4449 ++info->name_indx;
4459 if (! ieee_change_buffer (info, buflist))
4464 if (! ieee_buffer_emptyp (&info->types))
4466 if (! ieee_change_buffer (info, &info->types))
4471 if (! ieee_change_buffer (info, &info->types)
4472 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
4473 || ! ieee_write_byte (info, 1)
4474 || ! ieee_write_number (info, 0)
4475 || ! ieee_write_id (info, info->modname))
4481 if (! ieee_buffer_emptyp (&info->global_types))
4483 if (! ieee_change_buffer (info, &info->global_types))
4488 if (! ieee_change_buffer (info, &info->global_types)
4489 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
4490 || ! ieee_write_byte (info, 2)
4491 || ! ieee_write_number (info, 0)
4492 || ! ieee_write_id (info, ""))
4500 if (! ieee_push_type (info, type_indx, size, unsignedp, localp))
4503 return (ieee_write_byte (info, (int) ieee_nn_record)
4504 && ieee_write_number (info, name_indx)
4505 && ieee_write_id (info, name)
4506 && ieee_write_byte (info, (int) ieee_ty_record_enum)
4507 && ieee_write_number (info, type_indx)
4508 && ieee_write_byte (info, 0xce)
4509 && ieee_write_number (info, name_indx));
4515 ieee_get_modified_info (struct ieee_handle *info, unsigned int indx)
4517 if (indx >= info->modified_alloc)
4521 nalloc = info->modified_alloc;
4526 info->modified = ((struct ieee_modified_type *)
4527 xrealloc (info->modified,
4528 nalloc * sizeof *info->modified));
4529 memset (info->modified + info->modified_alloc, 0,
4530 (nalloc - info->modified_alloc) * sizeof *info->modified);
4531 info->modified_alloc = nalloc;
4534 return info->modified + indx;
4577 #define ieee_name_type_hash_traverse(table, func, info) \
4581 (info)))
4589 struct ieee_handle info;
4594 memset (&info, 0, sizeof info);
4595 info.abfd = abfd;
4596 info.type_indx = 256;
4597 info.name_indx = 32;
4599 if (!bfd_hash_table_init (&info.typedefs.root, ieee_name_type_newfunc,
4601 || !bfd_hash_table_init (&info.tags.root, ieee_name_type_newfunc,
4605 if (! ieee_init_buffer (&info, &info.global_types)
4606 || ! ieee_init_buffer (&info, &info.data)
4607 || ! ieee_init_buffer (&info, &info.types)
4608 || ! ieee_init_buffer (&info, &info.vars)
4609 || ! ieee_init_buffer (&info, &info.cxx)
4610 || ! ieee_init_buffer (&info, &info.linenos)
4611 || ! ieee_init_buffer (&info, &info.fntype)
4612 || ! ieee_init_buffer (&info, &info.fnargs))
4615 if (! debug_write (dhandle, &ieee_fns, (void *) &info))
4618 if (info.filename != NULL)
4620 if (! ieee_finish_compilation_unit (&info))
4625 info.error = FALSE;
4626 ieee_name_type_hash_traverse (&info.tags,
4628 (void *) &info);
4629 if (info.error)
4633 if (! ieee_buffer_emptyp (&info.global_types))
4637 if (! ieee_change_buffer (&info, &info.global_types)
4638 || ! ieee_write_byte (&info, (int) ieee_nn_record)
4639 || ! ieee_write_number (&info, info.name_indx)
4640 || ! ieee_write_id (&info, "")
4641 || ! ieee_write_byte (&info, (int) ieee_ty_record_enum)
4642 || ! ieee_write_number (&info, info.type_indx)
4643 || ! ieee_write_byte (&info, 0xce)
4644 || ! ieee_write_number (&info, info.name_indx)
4645 || ! ieee_write_number (&info, 'P')
4646 || ! ieee_write_number (&info, (int) builtin_void + 32)
4647 || ! ieee_write_byte (&info, (int) ieee_be_record_enum))
4650 if (! ieee_append_buffer (&info, &info.global_types, &info.data))
4652 info.data = info.global_types;
4656 file. They are added to info->vars. */
4657 info.error = FALSE;
4658 if (! ieee_init_buffer (&info, &info.vars))
4660 bfd_map_over_sections (abfd, ieee_add_bb11_blocks, (void *) &info);
4661 if (info.error)
4663 if (! ieee_buffer_emptyp (&info.vars))
4665 if (! ieee_change_buffer (&info, &info.vars)
4666 || ! ieee_write_byte (&info, (int) ieee_be_record_enum))
4669 if (! ieee_append_buffer (&info, &info.data, &info.vars))
4673 /* Now all the data is in info.data. Write it out to the BFD. We
4677 if (ieee_buffer_emptyp (&info.data))
4696 for (b = info.data.head; b != NULL; b = b->next)
4706 for (b = info.data.head; b != NULL; b = b->next)
4724 bfd_hash_table_free (&info.typedefs.root);
4725 bfd_hash_table_free (&info.tags.root);
4736 struct ieee_handle *info = (struct ieee_handle *) p;
4747 if (ieee_buffer_emptyp (&info->global_types))
4749 if (! ieee_change_buffer (info, &info->global_types)
4750 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
4751 || ! ieee_write_byte (info, 2)
4752 || ! ieee_write_number (info, 0)
4753 || ! ieee_write_id (info, ""))
4755 info->error = TRUE;
4761 if (! ieee_change_buffer (info, &info->global_types))
4763 info->error = TRUE;
4768 name_indx = info->name_indx;
4769 ++info->name_indx;
4770 if (! ieee_write_byte (info, (int) ieee_nn_record)
4771 || ! ieee_write_number (info, name_indx)
4772 || ! ieee_write_id (info, nt->type.name)
4773 || ! ieee_write_byte (info, (int) ieee_ty_record_enum)
4774 || ! ieee_write_number (info, nt->type.indx)
4775 || ! ieee_write_byte (info, 0xce)
4776 || ! ieee_write_number (info, name_indx))
4778 info->error = TRUE;
4786 info->error = TRUE;
4800 if (! ieee_write_number (info, code)
4801 || ! ieee_write_number (info, 0))
4803 info->error = TRUE;
4816 struct ieee_handle *info = (struct ieee_handle *) p;
4824 if (info->filename != NULL)
4826 if (! ieee_finish_compilation_unit (info))
4830 info->filename = filename;
4852 info->modname = c;
4854 if (! ieee_init_buffer (info, &info->types)
4855 || ! ieee_init_buffer (info, &info->vars)
4856 || ! ieee_init_buffer (info, &info->cxx)
4857 || ! ieee_init_buffer (info, &info->linenos))
4859 info->ranges = NULL;
4863 if (! ieee_change_buffer (info, &info->types)
4864 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
4865 || ! ieee_write_byte (info, 1)
4866 || ! ieee_write_number (info, 0)
4867 || ! ieee_write_id (info, info->modname))
4870 nindx = info->name_indx;
4871 ++info->name_indx;
4872 if (! ieee_change_buffer (info, &info->vars)
4873 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
4874 || ! ieee_write_byte (info, 3)
4875 || ! ieee_write_number (info, 0)
4876 || ! ieee_write_id (info, info->modname))
4885 ieee_finish_compilation_unit (struct ieee_handle *info)
4889 if (! ieee_buffer_emptyp (&info->types))
4891 if (! ieee_change_buffer (info, &info->types)
4892 || ! ieee_write_byte (info, (int) ieee_be_record_enum))
4896 if (! ieee_buffer_emptyp (&info->cxx))
4900 assert (! ieee_buffer_emptyp (&info->vars));
4901 if (! ieee_change_buffer (info, &info->vars))
4906 if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
4907 || ! ieee_write_byte (info, 6)
4908 || ! ieee_write_number (info, 0)
4909 || ! ieee_write_id (info, "__XRYCPP")
4910 || ! ieee_write_number (info, 0)
4911 || ! ieee_write_number (info, 0)
4912 || ! ieee_write_number (info, info->highaddr - 1)
4913 || ! ieee_append_buffer (info, &info->vars, &info->cxx)
4914 || ! ieee_change_buffer (info, &info->vars)
4915 || ! ieee_write_byte (info, (int) ieee_be_record_enum)
4916 || ! ieee_write_number (info, info->highaddr - 1))
4920 if (! ieee_buffer_emptyp (&info->vars))
4922 if (! ieee_change_buffer (info, &info->vars)
4923 || ! ieee_write_byte (info, (int) ieee_be_record_enum))
4927 if (info->pending_lineno_filename != NULL)
4930 if (! ieee_lineno ((void *) info, (const char *) NULL, 0, (bfd_vma) -1))
4933 if (! ieee_buffer_emptyp (&info->linenos))
4935 if (! ieee_change_buffer (info, &info->linenos)
4936 || ! ieee_write_byte (info, (int) ieee_be_record_enum))
4938 if (strcmp (info->filename, info->lineno_filename) != 0)
4943 if (! ieee_write_byte (info, (int) ieee_be_record_enum))
4948 if (! ieee_append_buffer (info, &info->data, &info->types)
4949 || ! ieee_append_buffer (info, &info->data, &info->vars)
4950 || ! ieee_append_buffer (info, &info->data, &info->linenos))
4954 if (! ieee_change_buffer (info, &info->data))
4957 if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
4958 || ! ieee_write_byte (info, 10)
4959 || ! ieee_write_number (info, 0)
4960 || ! ieee_write_id (info, info->modname)
4961 || ! ieee_write_id (info, "")
4962 || ! ieee_write_number (info, 0)
4963 || ! ieee_write_id (info, "GNU objcopy"))
4966 for (r = info->ranges; r != NULL; r = r->next)
4976 for (s = info->abfd->sections; s != NULL; s = s->next)
4978 if (bfd_get_section_vma (info->abfd, s) <= low
4979 && high <= (bfd_get_section_vma (info->abfd, s)
4980 + bfd_section_size (info->abfd, s)))
4994 <= (bfd_get_section_vma (info->abfd, s)
4995 + bfd_section_size (info->abfd, s))))
5008 if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
5009 || ! ieee_write_byte (info, 11)
5010 || ! ieee_write_number (info, 0)
5011 || ! ieee_write_id (info, "")
5012 || ! ieee_write_number (info, kind)
5013 || ! ieee_write_number (info, s->index + IEEE_SECTION_NUMBER_BASE)
5014 || ! ieee_write_number (info, low)
5015 || ! ieee_write_byte (info, (int) ieee_be_record_enum)
5016 || ! ieee_write_number (info, high - low))
5020 if (! ieee_add_range (info, TRUE, low, high))
5024 if (! ieee_write_byte (info, (int) ieee_be_record_enum))
5036 struct ieee_handle *info = (struct ieee_handle *) data;
5045 for (r = info->global_ranges; r != NULL; r = r->next)
5053 if (! ieee_add_bb11 (info, sec, low, high))
5054 info->error = TRUE;
5061 if (! ieee_add_bb11 (info, sec, low, r->low))
5063 info->error = TRUE;
5073 /* Add a single BB11 block for a range. We add it to info->vars. */
5076 ieee_add_bb11 (struct ieee_handle *info, asection *sec, bfd_vma low,
5081 if (! ieee_buffer_emptyp (&info->vars))
5083 if (! ieee_change_buffer (info, &info->vars))
5095 filename = bfd_get_filename (info->abfd);
5117 if (! ieee_change_buffer (info, &info->vars)
5118 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
5119 || ! ieee_write_byte (info, 10)
5120 || ! ieee_write_number (info, 0)
5121 || ! ieee_write_id (info, c)
5122 || ! ieee_write_id (info, "")
5123 || ! ieee_write_number (info, 0)
5124 || ! ieee_write_id (info, "GNU objcopy"))
5137 if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
5138 || ! ieee_write_byte (info, 11)
5139 || ! ieee_write_number (info, 0)
5140 || ! ieee_write_id (info, "")
5141 || ! ieee_write_number (info, kind)
5142 || ! ieee_write_number (info, sec->index + IEEE_SECTION_NUMBER_BASE)
5143 || ! ieee_write_number (info, low)
5144 || ! ieee_write_byte (info, (int) ieee_be_record_enum)
5145 || ! ieee_write_number (info, high - low))
5169 struct ieee_handle *info = (struct ieee_handle *) p;
5171 return ieee_push_type (info, (int) builtin_unknown, 0, FALSE, FALSE);
5179 struct ieee_handle *info = (struct ieee_handle *) p;
5181 return ieee_push_type (info, (int) builtin_void, 0, FALSE, FALSE);
5189 struct ieee_handle *info = (struct ieee_handle *) p;
5214 return ieee_push_type (info, indx, size, unsignedp, FALSE);
5222 struct ieee_handle *info = (struct ieee_handle *) p;
5245 return ieee_push_type (info, indx, size, FALSE, FALSE);
5253 struct ieee_handle *info = (struct ieee_handle *) p;
5259 if (info->complex_float_index != 0)
5260 return ieee_push_type (info, info->complex_float_index, size * 2,
5269 if (info->complex_double_index != 0)
5270 return ieee_push_type (info, info->complex_double_index, size * 2,
5280 if (! ieee_define_type (info, size * 2, FALSE, FALSE)
5281 || ! ieee_write_number (info, code)
5282 || ! ieee_write_id (info, ""))
5286 info->complex_float_index = info->type_stack->type.indx;
5288 info->complex_double_index = info->type_stack->type.indx;
5308 struct ieee_handle *info = (struct ieee_handle *) p;
5316 for (e = info->enums; e != NULL; e = e->next)
5356 return ieee_push_type (info, e->indx, 0, TRUE, FALSE);
5385 if (! ieee_define_named_type (info, tag, indx, 0, TRUE, localp,
5387 || ! ieee_write_number (info, simple ? 'E' : 'N'))
5393 if (! ieee_write_number (info, 4))
5400 if (! ieee_write_id (info, names[i]))
5404 if (! ieee_write_number (info, vals[i]))
5416 e->indx = info->type_stack->type.indx;
5419 e->next = info->enums;
5420 info->enums = e;
5436 struct ieee_handle *info = (struct ieee_handle *) p;
5441 localp = info->type_stack->type.localp;
5442 indx = ieee_pop_type (info);
5447 return ieee_push_type (info, indx + 32, 0, TRUE, FALSE);
5457 return ieee_push_type (info, m->pointer, 4, TRUE, FALSE);
5460 if (! ieee_define_type (info, 4, TRUE, localp)
5461 || ! ieee_write_number (info, 'P')
5462 || ! ieee_write_number (info, indx))
5466 m->pointer = info->type_stack->type.indx;
5479 struct ieee_handle *info = (struct ieee_handle *) p;
5494 if (info->type_stack->type.localp)
5496 args[i] = ieee_pop_type (info);
5502 if (info->type_stack->type.localp)
5504 retindx = ieee_pop_type (info);
5514 return ieee_push_type (info, m->function, 0, TRUE, FALSE);
5519 if (! ieee_init_buffer (info, &fndef)
5520 || ! ieee_define_named_type (info, (const char *) NULL,
5523 || ! ieee_write_number (info, 'x')
5524 || ! ieee_write_number (info, 0x41)
5525 || ! ieee_write_number (info, 0)
5526 || ! ieee_write_number (info, 0)
5527 || ! ieee_write_number (info, retindx)
5528 || ! ieee_write_number (info, (bfd_vma) argcount + (varargs ? 1 : 0)))
5533 if (! ieee_write_number (info, args[i]))
5541 if (! ieee_write_number (info, (bfd_vma) builtin_void + 32))
5545 if (! ieee_write_number (info, 0))
5549 It will be appended to info->types by ieee_pop_type. */
5550 info->type_stack->type.fndef = fndef;
5553 m->function = info->type_stack->type.indx;
5563 struct ieee_handle *info = (struct ieee_handle *) p;
5570 info->type_stack->type.referencep = TRUE;
5579 struct ieee_handle *info = (struct ieee_handle *) p;
5583 size = info->type_stack->type.size;
5584 unsignedp = info->type_stack->type.unsignedp;
5585 localp = info->type_stack->type.localp;
5586 ieee_pop_unused_type (info);
5587 return (ieee_define_type (info, size, unsignedp, localp)
5588 && ieee_write_number (info, 'R')
5589 && ieee_write_number (info, (bfd_vma) low)
5590 && ieee_write_number (info, (bfd_vma) high)
5591 && ieee_write_number (info, unsignedp ? 0 : 1)
5592 && ieee_write_number (info, size));
5601 struct ieee_handle *info = (struct ieee_handle *) p;
5609 ieee_pop_unused_type (info);
5610 localp = info->type_stack->type.localp;
5611 size = info->type_stack->type.size;
5612 eleindx = ieee_pop_type (info);
5621 m = ieee_get_modified_info (info, eleindx);
5628 return ieee_push_type (info, a->indx, size, FALSE, FALSE);
5632 if (! ieee_define_type (info, size, FALSE, localp)
5633 || ! ieee_write_number (info, low == 0 ? 'Z' : 'C')
5634 || ! ieee_write_number (info, eleindx))
5638 if (! ieee_write_number (info, low))
5642 if (! ieee_write_number (info, high + 1))
5650 a->indx = info->type_stack->type.indx;
5666 struct ieee_handle *info = (struct ieee_handle *) p;
5670 localp = info->type_stack->type.localp;
5671 eleindx = ieee_pop_type (info);
5675 return (ieee_define_type (info, 0, TRUE, localp)
5676 && ieee_write_number (info, 's')
5677 && ieee_write_number (info, 4)
5678 && ieee_write_number (info, eleindx));
5686 struct ieee_handle *info = (struct ieee_handle *) p;
5689 targetindx = ieee_pop_type (info);
5690 baseindx = ieee_pop_type (info);
5708 struct ieee_handle *info = (struct ieee_handle *) p;
5715 ieee_pop_unused_type (info);
5725 struct ieee_handle *info = (struct ieee_handle *) p;
5731 size = info->type_stack->type.size;
5732 unsignedp = info->type_stack->type.unsignedp;
5733 localp = info->type_stack->type.localp;
5734 indx = ieee_pop_type (info);
5738 m = ieee_get_modified_info (info, indx);
5743 return ieee_push_type (info, m->const_qualified, size, unsignedp,
5747 if (! ieee_define_type (info, size, unsignedp, localp)
5748 || ! ieee_write_number (info, 'n')
5749 || ! ieee_write_number (info, 1)
5750 || ! ieee_write_number (info, indx))
5754 m->const_qualified = info->type_stack->type.indx;
5764 struct ieee_handle *info = (struct ieee_handle *) p;
5770 size = info->type_stack->type.size;
5771 unsignedp = info->type_stack->type.unsignedp;
5772 localp = info->type_stack->type.localp;
5773 indx = ieee_pop_type (info);
5777 m = ieee_get_modified_info (info, indx);
5782 return ieee_push_type (info, m->volatile_qualified, size, unsignedp,
5786 if (! ieee_define_type (info, size, unsignedp, localp)
5787 || ! ieee_write_number (info, 'n')
5788 || ! ieee_write_number (info, 2)
5789 || ! ieee_write_number (info, indx))
5793 m->volatile_qualified = info->type_stack->type.indx;
5825 struct ieee_handle *info = (struct ieee_handle *) p;
5854 h = ieee_name_type_hash_lookup (&info->tags, look, TRUE, copy);
5890 nt->type.indx = info->type_indx;
5891 ++info->type_indx;
5896 if (! ieee_init_buffer (info, &strdef)
5897 || ! ieee_define_named_type (info, tag, nt->type.indx, size, TRUE,
5899 || ! ieee_write_number (info, structp ? 'S' : 'U')
5900 || ! ieee_write_number (info, size))
5911 nt->type = info->type_stack->type;
5915 info->type_stack->type.name = tag;
5916 info->type_stack->type.strdef = strdef;
5917 info->type_stack->type.ignorep = ignorep;
5928 struct ieee_handle *info = (struct ieee_handle *) p;
5936 assert (info->type_stack != NULL
5937 && info->type_stack->next != NULL
5938 && ! ieee_buffer_emptyp (&info->type_stack->next->type.strdef));
5942 if (info->type_stack->next->type.ignorep)
5944 ieee_pop_unused_type (info);
5948 size = info->type_stack->type.size;
5949 unsignedp = info->type_stack->type.unsignedp;
5950 referencep = info->type_stack->type.referencep;
5951 localp = info->type_stack->type.localp;
5952 indx = ieee_pop_type (info);
5955 info->type_stack->type.localp = TRUE;
5957 if (info->type_stack->type.classdef != NULL)
5966 nindx = info->type_stack->type.classdef->indx;
5967 if (! ieee_change_buffer (info,
5968 &info->type_stack->type.classdef->pmiscbuf)
5969 || ! ieee_write_asn (info, nindx, 'd')
5970 || ! ieee_write_asn (info, nindx, flags)
5971 || ! ieee_write_atn65 (info, nindx, name)
5972 || ! ieee_write_atn65 (info, nindx, name))
5974 info->type_stack->type.classdef->pmisccount += 4;
5985 nindx = info->name_indx;
5986 ++info->name_indx;
5988 if (! ieee_change_buffer (info,
5989 &info->type_stack->type.classdef->refs)
5990 || ! ieee_write_byte (info, (int) ieee_nn_record)
5991 || ! ieee_write_number (info, nindx)
5992 || ! ieee_write_id (info, "")
5993 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
5994 || ! ieee_write_number (info, nindx)
5995 || ! ieee_write_number (info, 0)
5996 || ! ieee_write_number (info, 62)
5997 || ! ieee_write_number (info, 80)
5998 || ! ieee_write_number (info, 4)
5999 || ! ieee_write_asn (info, nindx, 'R')
6000 || ! ieee_write_asn (info, nindx, 3)
6001 || ! ieee_write_atn65 (info, nindx, info->type_stack->type.name)
6002 || ! ieee_write_atn65 (info, nindx, name))
6013 if (! ieee_define_type (info, 0, unsignedp,
6014 info->type_stack->type.localp)
6015 || ! ieee_write_number (info, 'g')
6016 || ! ieee_write_number (info, unsignedp ? 0 : 1)
6017 || ! ieee_write_number (info, bitsize)
6018 || ! ieee_write_number (info, indx))
6020 indx = ieee_pop_type (info);
6026 return (ieee_change_buffer (info, &info->type_stack->type.strdef)
6027 && ieee_write_id (info, name)
6028 && ieee_write_number (info, indx)
6029 && ieee_write_number (info, offset));
6037 struct ieee_handle *info = (struct ieee_handle *) p;
6040 assert (info->type_stack != NULL
6041 && ! ieee_buffer_emptyp (&info->type_stack->type.strdef));
6046 if (info->type_stack->type.ignorep)
6053 if (! info->type_stack->type.localp)
6056 if (ieee_buffer_emptyp (&info->global_types))
6058 if (! ieee_change_buffer (info, &info->global_types)
6059 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
6060 || ! ieee_write_byte (info, 2)
6061 || ! ieee_write_number (info, 0)
6062 || ! ieee_write_id (info, ""))
6065 pb = &info->global_types;
6070 if (ieee_buffer_emptyp (&info->types))
6072 if (! ieee_change_buffer (info, &info->types)
6073 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
6074 || ! ieee_write_byte (info, 1)
6075 || ! ieee_write_number (info, 0)
6076 || ! ieee_write_id (info, info->modname))
6079 pb = &info->types;
6083 if (! ieee_append_buffer (info, pb, &info->type_stack->type.strdef)
6084 || ! ieee_init_buffer (info, &info->type_stack->type.strdef))
6099 struct ieee_handle *info = (struct ieee_handle *) p;
6125 vclass = info->type_stack->type.name;
6129 (void) ieee_pop_type (info);
6135 indx = info->name_indx;
6136 ++info->name_indx;
6141 if (! ieee_init_buffer (info, &pmiscbuf)
6142 || ! ieee_change_buffer (info, &pmiscbuf)
6143 || ! ieee_write_asn (info, indx, 'T')
6144 || ! ieee_write_asn (info, indx, structp ? 'o' : 'u')
6145 || ! ieee_write_atn65 (info, indx, tag))
6157 info->type_stack->type.classdef = classdef;
6168 struct ieee_handle *info = (struct ieee_handle *) p;
6175 ieee_pop_unused_type (info);
6177 assert (info->type_stack != NULL
6178 && info->type_stack->type.classdef != NULL);
6183 nindx = info->type_stack->type.classdef->indx;
6185 if (! ieee_change_buffer (info, &info->type_stack->type.classdef->pmiscbuf)
6186 || ! ieee_write_asn (info, nindx, 'd')
6187 || ! ieee_write_asn (info, nindx, flags)
6188 || ! ieee_write_atn65 (info, nindx, name)
6189 || ! ieee_write_atn65 (info, nindx, physname))
6191 info->type_stack->type.classdef->pmisccount += 4;
6202 struct ieee_handle *info = (struct ieee_handle *) p;
6210 assert (info->type_stack != NULL
6211 && info->type_stack->type.name != NULL
6212 && info->type_stack->next != NULL
6213 && info->type_stack->next->type.classdef != NULL
6214 && ! ieee_buffer_emptyp (&info->type_stack->next->type.strdef));
6216 bname = info->type_stack->type.name;
6217 localp = info->type_stack->type.localp;
6218 bindx = ieee_pop_type (info);
6234 info->type_stack->type.localp = TRUE;
6239 if (! ieee_change_buffer (info, &info->type_stack->type.strdef)
6240 || ! ieee_write_id (info, fname)
6241 || ! ieee_write_number (info, bindx)
6242 || ! ieee_write_number (info, bitpos / 8))
6250 nindx = info->type_stack->type.classdef->indx;
6252 if (! ieee_change_buffer (info, &info->type_stack->type.classdef->pmiscbuf)
6253 || ! ieee_write_asn (info, nindx, 'b')
6254 || ! ieee_write_asn (info, nindx, flags)
6255 || ! ieee_write_atn65 (info, nindx, bname)
6256 || ! ieee_write_asn (info, nindx, 0)
6257 || ! ieee_write_atn65 (info, nindx, fname))
6259 info->type_stack->type.classdef->pmisccount += 5;
6271 struct ieee_handle *info = (struct ieee_handle *) p;
6273 assert (info->type_stack != NULL
6274 && info->type_stack->type.classdef != NULL
6275 && info->type_stack->type.classdef->method == NULL);
6277 info->type_stack->type.classdef->method = name;
6285 ieee_class_method_var (struct ieee_handle *info, const char *physname,
6298 ieee_pop_unused_type (info);
6303 ieee_pop_unused_type (info);
6305 assert (info->type_stack != NULL
6306 && info->type_stack->type.classdef != NULL
6307 && info->type_stack->type.classdef->method != NULL);
6321 nindx = info->type_stack->type.classdef->indx;
6325 if (! ieee_change_buffer (info,
6326 &info->type_stack->type.classdef->pmiscbuf)
6327 || ! ieee_write_asn (info, nindx, virtual ? 'v' : 'm')
6328 || ! ieee_write_asn (info, nindx, flags)
6329 || ! ieee_write_atn65 (info, nindx,
6330 info->type_stack->type.classdef->method)
6331 || ! ieee_write_atn65 (info, nindx, physname))
6336 if (voffset > info->type_stack->type.classdef->voffset)
6337 info->type_stack->type.classdef->voffset = voffset;
6338 if (! ieee_write_asn (info, nindx, voffset))
6340 ++info->type_stack->type.classdef->pmisccount;
6343 if (! ieee_write_asn (info, nindx, 0))
6346 info->type_stack->type.classdef->pmisccount += 5;
6359 struct ieee_handle *info = (struct ieee_handle *) p;
6361 return ieee_class_method_var (info, physname, visibility, FALSE, constp,
6372 struct ieee_handle *info = (struct ieee_handle *) p;
6374 return ieee_class_method_var (info, physname, visibility, TRUE, constp,
6383 struct ieee_handle *info = (struct ieee_handle *) p;
6385 assert (info->type_stack != NULL
6386 && info->type_stack->type.classdef != NULL
6387 && info->type_stack->type.classdef->method != NULL);
6389 info->type_stack->type.classdef->method = NULL;
6399 struct ieee_handle *info = (struct ieee_handle *) p;
6402 assert (info->type_stack != NULL
6403 && info->type_stack->type.classdef != NULL);
6408 if (info->type_stack->type.ignorep)
6411 nindx = info->type_stack->type.classdef->indx;
6414 if (info->type_stack->type.classdef->vclass != NULL
6415 || info->type_stack->type.classdef->ownvptr)
6417 if (! ieee_change_buffer (info,
6418 &info->type_stack->type.classdef->pmiscbuf)
6419 || ! ieee_write_asn (info, nindx, 'z')
6420 || ! ieee_write_atn65 (info, nindx, "")
6421 || ! ieee_write_asn (info, nindx,
6422 info->type_stack->type.classdef->voffset))
6424 if (info->type_stack->type.classdef->ownvptr)
6426 if (! ieee_write_atn65 (info, nindx, ""))
6431 if (! ieee_write_atn65 (info, nindx,
6432 info->type_stack->type.classdef->vclass))
6435 if (! ieee_write_asn (info, nindx, 0))
6437 info->type_stack->type.classdef->pmisccount += 5;
6444 if (! ieee_change_buffer (info, &info->cxx)
6445 || ! ieee_write_byte (info, (int) ieee_nn_record)
6446 || ! ieee_write_number (info, nindx)
6447 || ! ieee_write_id (info, "")
6448 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
6449 || ! ieee_write_number (info, nindx)
6450 || ! ieee_write_number (info, 0)
6451 || ! ieee_write_number (info, 62)
6452 || ! ieee_write_number (info, 80)
6453 || ! ieee_write_number (info,
6454 info->type_stack->type.classdef->pmisccount))
6457 if (! ieee_append_buffer (info, &info->cxx,
6458 &info->type_stack->type.classdef->pmiscbuf))
6460 if (! ieee_buffer_emptyp (&info->type_stack->type.classdef->refs))
6462 if (! ieee_append_buffer (info, &info->cxx,
6463 &info->type_stack->type.classdef->refs))
6475 struct ieee_handle *info = (struct ieee_handle *) p;
6479 h = ieee_name_type_hash_lookup (&info->typedefs, name, FALSE, FALSE);
6490 if (! ieee_push_type (info, nt->type.indx, nt->type.size,
6495 info->type_stack->type = nt->type;
6506 struct ieee_handle *info = (struct ieee_handle *) p;
6519 for (e = info->enums; e != NULL; e = e->next)
6521 return ieee_push_type (info, e->indx, 0, TRUE, FALSE);
6526 e->indx = info->type_indx;
6527 ++info->type_indx;
6531 e->next = info->enums;
6532 info->enums = e;
6534 return ieee_push_type (info, e->indx, 0, TRUE, FALSE);
6547 h = ieee_name_type_hash_lookup (&info->tags, name, TRUE, copy);
6555 if (! ieee_push_type (info, nt->type.indx, nt->type.size,
6559 info->type_stack->type = nt->type;
6576 nt->type.indx = info->type_indx;
6578 ++info->type_indx;
6584 if (! ieee_push_type (info, nt->type.indx, 0, FALSE, localp))
6587 info->type_stack->type.name = h->root.string;
6597 struct ieee_handle *info = (struct ieee_handle *) p;
6605 type = info->type_stack->type;
6765 h = ieee_name_type_hash_lookup (&info->typedefs, name, TRUE, FALSE);
6779 ieee_pop_unused_type (info);
6807 ieee_pop_unused_type (info);
6811 indx = ieee_pop_type (info);
6813 if (! ieee_define_named_type (info, name, (unsigned int) -1, type.size,
6816 || ! ieee_write_number (info, 'T')
6817 || ! ieee_write_number (info, indx))
6823 (void) ieee_pop_type (info);
6833 struct ieee_handle *info = (struct ieee_handle *) p;
6837 (void) ieee_pop_type (info);
6868 struct ieee_handle *info = (struct ieee_handle *) p;
6871 ieee_pop_unused_type (info);
6881 struct ieee_handle *info = (struct ieee_handle *) p;
6889 size = info->type_stack->type.size;
6890 referencep = info->type_stack->type.referencep;
6891 type_indx = ieee_pop_type (info);
6893 assert (! ieee_buffer_emptyp (&info->vars));
6894 if (! ieee_change_buffer (info, &info->vars))
6897 name_indx = info->name_indx;
6898 ++info->name_indx;
6901 if (! ieee_write_byte (info, (int) ieee_nn_record)
6902 || ! ieee_write_number (info, name_indx)
6903 || ! ieee_write_id (info, name)
6904 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
6905 || ! ieee_write_number (info, name_indx)
6906 || ! ieee_write_number (info, type_indx))
6914 if (! ieee_write_number (info, 8)
6915 || ! ieee_add_range (info, FALSE, val, val + size))
6921 if (! ieee_write_number (info, 3)
6922 || ! ieee_add_range (info, FALSE, val, val + size))
6928 if (! ieee_write_number (info, 3)
6929 || ! ieee_add_range (info, FALSE, val, val + size))
6935 if (! ieee_write_number (info, 1)
6936 || ! ieee_write_number (info, val))
6942 if (! ieee_write_number (info, 2)
6943 || ! ieee_write_number (info,
6944 ieee_genreg_to_regno (info->abfd, val)))
6953 if (! ieee_write_asn (info, name_indx, val))
6964 nindx = info->name_indx;
6965 ++info->name_indx;
6973 if (! ieee_change_buffer (info, &info->cxx))
6977 if (! ieee_write_byte (info, (int) ieee_nn_record)
6978 || ! ieee_write_number (info, nindx)
6979 || ! ieee_write_id (info, "")
6980 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
6981 || ! ieee_write_number (info, nindx)
6982 || ! ieee_write_number (info, 0)
6983 || ! ieee_write_number (info, 62)
6984 || ! ieee_write_number (info, 80)
6985 || ! ieee_write_number (info, 3)
6986 || ! ieee_write_asn (info, nindx, 'R')
6987 || ! ieee_write_asn (info, nindx, refflag)
6988 || ! ieee_write_atn65 (info, nindx, name))
7000 struct ieee_handle *info = (struct ieee_handle *) p;
7004 referencep = info->type_stack->type.referencep;
7005 retindx = ieee_pop_type (info);
7010 in info->fntype and info->fnargs. */
7011 if (! ieee_buffer_emptyp (&info->fntype))
7018 info->fnname = name;
7021 if (! ieee_define_named_type (info, name, (unsigned int) -1, 0, FALSE, TRUE,
7022 &info->fntype)
7023 || ! ieee_write_number (info, 'x')
7024 || ! ieee_write_number (info, 0x40)
7025 || ! ieee_write_number (info, 0)
7026 || ! ieee_write_number (info, 0)
7027 || ! ieee_write_number (info, retindx))
7030 typeindx = ieee_pop_type (info);
7032 if (! ieee_init_buffer (info, &info->fnargs))
7034 info->fnargcount = 0;
7042 nindx = info->name_indx;
7043 ++info->name_indx;
7044 if (! ieee_change_buffer (info, &info->cxx)
7045 || ! ieee_write_byte (info, (int) ieee_nn_record)
7046 || ! ieee_write_number (info, nindx)
7047 || ! ieee_write_id (info, "")
7048 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
7049 || ! ieee_write_number (info, nindx)
7050 || ! ieee_write_number (info, 0)
7051 || ! ieee_write_number (info, 62)
7052 || ! ieee_write_number (info, 80)
7053 || ! ieee_write_number (info, 3)
7054 || ! ieee_write_asn (info, nindx, 'R')
7055 || ! ieee_write_asn (info, nindx, global ? 0 : 1)
7056 || ! ieee_write_atn65 (info, nindx, name))
7060 assert (! ieee_buffer_emptyp (&info->vars));
7061 if (! ieee_change_buffer (info, &info->vars))
7066 ++info->block_depth;
7068 return (ieee_write_byte (info, (int) ieee_bb_record_enum)
7069 && ieee_write_byte (info, global ? 4 : 6)
7070 && ieee_write_number (info, 0)
7071 && ieee_write_id (info, name)
7072 && ieee_write_number (info, 0)
7073 && ieee_write_number (info, typeindx));
7083 struct ieee_handle *info = (struct ieee_handle *) p;
7086 assert (info->block_depth == 1);
7093 m->referencep = info->type_stack->type.referencep;
7094 m->type = ieee_pop_type (info);
7098 for (pm = &info->pending_parms; *pm != NULL; pm = &(*pm)->next)
7103 if (! ieee_change_buffer (info, &info->fnargs)
7104 || ! ieee_write_number (info, m->type))
7106 ++info->fnargcount;
7114 ieee_output_pending_parms (struct ieee_handle *info)
7120 for (m = info->pending_parms; m != NULL; m = m->next)
7139 if (! ieee_push_type (info, m->type, 0, FALSE, FALSE))
7141 info->type_stack->type.referencep = m->referencep;
7144 if (! ieee_variable ((void *) info, m->name, vkind, m->val))
7156 nindx = info->name_indx;
7157 ++info->name_indx;
7158 if (! ieee_change_buffer (info, &info->vars)
7159 || ! ieee_write_byte (info, (int) ieee_nn_record)
7160 || ! ieee_write_number (info, nindx)
7161 || ! ieee_write_id (info, "")
7162 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
7163 || ! ieee_write_number (info, nindx)
7164 || ! ieee_write_number (info, 0)
7165 || ! ieee_write_number (info, 62)
7166 || ! ieee_write_number (info, 80)
7167 || ! ieee_write_number (info, refcount + 3)
7168 || ! ieee_write_asn (info, nindx, 'B')
7169 || ! ieee_write_atn65 (info, nindx, info->fnname)
7170 || ! ieee_write_asn (info, nindx, 0))
7172 for (m = info->pending_parms, varindx = 1;
7178 if (! ieee_write_asn (info, nindx, varindx))
7184 m = info->pending_parms;
7194 info->pending_parms = NULL;
7205 struct ieee_handle *info = (struct ieee_handle *) p;
7207 if (! ieee_change_buffer (info, &info->vars))
7210 if (info->block_depth == 1)
7212 if (! ieee_write_number (info, addr)
7213 || ! ieee_output_pending_parms (info))
7218 if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
7219 || ! ieee_write_byte (info, 6)
7220 || ! ieee_write_number (info, 0)
7221 || ! ieee_write_id (info, "")
7222 || ! ieee_write_number (info, 0)
7223 || ! ieee_write_number (info, 0)
7224 || ! ieee_write_number (info, addr))
7228 if (! ieee_start_range (info, addr))
7231 ++info->block_depth;
7241 struct ieee_handle *info = (struct ieee_handle *) p;
7246 if (! ieee_change_buffer (info, &info->vars)
7247 || ! ieee_write_byte (info, (int) ieee_be_record_enum)
7248 || ! ieee_write_number (info, addr - 1))
7251 if (! ieee_end_range (info, addr))
7254 --info->block_depth;
7256 if (addr > info->highaddr)
7257 info->highaddr = addr;
7267 struct ieee_handle *info = (struct ieee_handle *) p;
7269 assert (info->block_depth == 1);
7271 --info->block_depth;
7279 if (! ieee_change_buffer (info, &info->fntype)
7280 || ! ieee_write_number (info, info->fnargcount)
7281 || ! ieee_change_buffer (info, &info->fnargs)
7282 || ! ieee_write_number (info, 0))
7286 if (ieee_buffer_emptyp (&info->types))
7288 if (! ieee_change_buffer (info, &info->types)
7289 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
7290 || ! ieee_write_byte (info, 1)
7291 || ! ieee_write_number (info, 0)
7292 || ! ieee_write_id (info, info->modname))
7296 if (! ieee_append_buffer (info, &info->types, &info->fntype)
7297 || ! ieee_append_buffer (info, &info->types, &info->fnargs))
7300 info->fnname = NULL;
7301 if (! ieee_init_buffer (info, &info->fntype)
7302 || ! ieee_init_buffer (info, &info->fnargs))
7304 info->fnargcount = 0;
7314 struct ieee_handle *info = (struct ieee_handle *) p;
7316 assert (info->filename != NULL);
7322 if (info->pending_lineno_filename != NULL
7323 && addr != info->pending_lineno_addr)
7326 if (! ieee_buffer_emptyp (&info->linenos))
7328 if (! ieee_change_buffer (info, &info->linenos))
7333 info->lineno_name_indx = info->name_indx;
7334 ++info->name_indx;
7335 if (! ieee_change_buffer (info, &info->linenos)
7336 || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
7337 || ! ieee_write_byte (info, 5)
7338 || ! ieee_write_number (info, 0)
7339 || ! ieee_write_id (info, info->filename)
7340 || ! ieee_write_byte (info, (int) ieee_nn_record)
7341 || ! ieee_write_number (info, info->lineno_name_indx)
7342 || ! ieee_write_id (info, ""))
7344 info->lineno_filename = info->filename;
7347 if (strcmp (info->pending_lineno_filename, info->lineno_filename) != 0)
7349 if (strcmp (info->filename, info->lineno_filename) != 0)
7353 if (! ieee_write_byte (info, (int) ieee_be_record_enum))
7355 if (strcmp (info->filename, info->pending_lineno_filename) == 0)
7359 info->lineno_name_indx = info->name_indx;
7360 ++info->name_indx;
7361 if (! ieee_write_byte (info, (int) ieee_nn_record)
7362 || ! ieee_write_number (info, info->lineno_name_indx)
7363 || ! ieee_write_id (info, ""))
7367 if (strcmp (info->filename, info->pending_lineno_filename) != 0)
7371 info->lineno_name_indx = info->name_indx;
7372 ++info->name_indx;
7373 if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
7374 || ! ieee_write_byte (info, 5)
7375 || ! ieee_write_number (info, 0)
7376 || ! ieee_write_id (info, info->pending_lineno_filename)
7377 || ! ieee_write_byte (info, (int) ieee_nn_record)
7378 || ! ieee_write_number (info, info->lineno_name_indx)
7379 || ! ieee_write_id (info, ""))
7382 info->lineno_filename = info->pending_lineno_filename;
7385 if (! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
7386 || ! ieee_write_number (info, info->lineno_name_indx)
7387 || ! ieee_write_number (info, 0)
7388 || ! ieee_write_number (info, 7)
7389 || ! ieee_write_number (info, info->pending_lineno)
7390 || ! ieee_write_number (info, 0)
7391 || ! ieee_write_asn (info, info->lineno_name_indx,
7392 info->pending_lineno_addr))
7396 info->pending_lineno_filename = filename;
7397 info->pending_lineno = lineno;
7398 info->pending_lineno_addr = addr;