*/
typedef struct LineInfo LineInfo;
struct LineInfo {
+ unsigned Id; /* Line info id */
struct FileInfo* File; /* File struct for this line if any */
unsigned Type; /* Type of line info */
FilePos Pos; /* Position in file */
- Collection Fragments; /* Fragments for this line */
- Collection Spans; /* Spans for this line */
+ unsigned* Spans; /* Spans for this line */
};
/* Read a line info from a file and return it */
void FreeLineInfo (LineInfo* LI);
-/* Free a LineInfo structure. This function will not handle a non empty
- * Fragments collection, it can only be used to free incomplete line infos.
- */
+/* Free a LineInfo structure. */
void ReadLineInfoList (FILE* F, struct ObjData* O, Collection* LineInfos);
/* Read a list of line infos stored as a list of indices in the object file,
* make real line infos from them and place them into the passed collection.
*/
-void RelocLineInfo (struct Segment* S);
-/* Relocate the line info for a segment. */
+const LineInfo* GetAsmLineInfo (const Collection* LineInfos);
+/* Find a line info of type LI_TYPE_ASM in the given collection and return it.
+ * Return NULL if no such line info was found.
+ */
#if defined(HAVE_INLINE)
INLINE const FilePos* GetSourcePos (const LineInfo* LI)
#endif
#if defined(HAVE_INLINE)
-INLINE unsigned long GetSourceLine (const LineInfo* LI)
+INLINE unsigned GetSourceLine (const LineInfo* LI)
/* Return the source file line from the given line info */
{
return LI->Pos.Line;
#endif
#if defined(HAVE_INLINE)
-INLINE unsigned long GetSourceLineFromList (const Collection* LineInfos)
+INLINE unsigned GetSourceLineFromList (const Collection* LineInfos)
/* Return the source file line from a list of line infos */
{
/* The relevant entry is in slot zero */
GetSourceLine ((const LineInfo*) CollConstAt ((LineInfos), 0))
#endif
+unsigned LineInfoCount (void);
+/* Return the total number of line infos */
+
+void AssignLineInfoIds (void);
+/* Assign the ids to the line infos */
+
+void PrintDbgLineInfo (FILE* F);
+/* Output the line infos to a debug info file */
+
/* End of lineinfo.h */