#else
StgInfoTable i;
StgSRT *srt; /* pointer to the SRT table */
- StgFunPtr vector[FLEXIBLE_ARRAY];
#endif
} StgRetInfoTable;
#endif
} StgThunkInfoTable;
+/* -----------------------------------------------------------------------------
+ Constructor info tables
+ -------------------------------------------------------------------------- */
+
+typedef struct _StgConInfoTable {
+#if !defined(TABLES_NEXT_TO_CODE)
+ StgInfoTable i;
+#endif
+
+ OFFSET_FIELD(con_desc) // the name of the data constructor
+ // as: Package:Module.Name
+
+#if defined(TABLES_NEXT_TO_CODE)
+ StgInfoTable i;
+#endif
+} StgConInfoTable;
+
/* -----------------------------------------------------------------------------
Accessor macros for fields that might be offsets (C version)
#endif
/*
+ * GET_CON_DESC(info)
+ * info must be a StgConInfoTable*.
+ */
+#ifdef TABLES_NEXT_TO_CODE
+#define GET_CON_DESC(info) ((char *)((StgWord)((info)+1) + (info->con_desc)))
+#else
+#define GET_CON_DESC(info) ((info)->con_desc)
+#endif
+
+/*
* GET_FUN_SRT(info)
* info must be a StgFunInfoTable*
*/