+static qcint ir_builder_filestring(ir_builder *ir, const char *filename)
+{
+ /* NOTE: filename pointers are copied, we never strdup them,
+ * thus we can use pointer-comparison to find the string.
+ */
+ size_t i;
+ qcint str;
+
+ for (i = 0; i < ir->filenames_count; ++i) {
+ if (ir->filenames[i] == filename)
+ return ir->filestrings[i];
+ }
+
+ str = code_genstring(filename);
+ if (!ir_builder_filenames_add(ir, filename))
+ return 0;
+ if (!ir_builder_filestrings_add(ir, str))
+ ir->filenames_count--;
+ return str;
+}
+