In the built code all the strings are references using the offset of the string from the string table (See @xref{build_AllocateStringTable()}). This function calculates this value for the string.
This function is used repetitively during the code building. Whenever a string index is sought that is not in the string table yet the string is put into the table and the index is returned.
If there is not enough space in the string table the function calls the system function
exit and stops the process. This is rude especially in a multithread application
but it should not ever happen. If this happens then it is a serious internal error.
unsigned long build_StringIndex(pBuildObject pBuild,
char *s,
long sLen
){