aboutsummaryrefslogtreecommitdiff
path: root/tmp.c
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2026-09-05 17:14:53 +0200
committerXavier Del Campo Romero <xavi92@disroot.org>2026-09-26 03:41:55 +0200
commit3c0819236e4f07c8f57aaf1ca46d0d68aa761558 (patch)
treebd8b57cf5420cabc4ec29815052df545b55026f9 /tmp.c
parenta3f56c76444fee090e62a59f257ed5f60b4e552b (diff)
downloadprc-3c0819236e4f07c8f57aaf1ca46d0d68aa761558.tar.gz
Move source to src/prc1
Diffstat (limited to 'tmp.c')
-rw-r--r--tmp.c69
1 files changed, 0 insertions, 69 deletions
diff --git a/tmp.c b/tmp.c
deleted file mode 100644
index c93443f..0000000
--- a/tmp.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include "tmp.h"
-#include "type.h"
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-const struct stentry *tmp_create(struct fn *fn, const struct type *t)
-{
- static const char fmt[] = "__tmp%zu";
- int r = snprintf(NULL, 0, fmt, fn->ntmps);
- char *s = NULL, *tname = NULL;
- struct tmp *tmp;
-
- if (!(tname = type_name(t)))
- goto failure;
- else if (r < 0)
- {
- fprintf(stderr, "%s: snprintf(3) failed\n", __func__);
- goto failure;
- }
- else if (!(s = malloc(r + 1)))
- {
- perror("malloc(3)");
- goto failure;
- }
-
- snprintf(s, r + 1, fmt, fn->ntmps++);
-
- if (!(tmp = malloc(sizeof *tmp)))
- {
- perror("realloc(3)");
- goto failure;
- }
-
- *tmp = (struct tmp)
- {
- .tk =
- {
- .type = ID,
- .s = s,
- .loc.f = "(temporary)"
- },
-
- .e =
- {
- .tk = &tmp->tk,
- .t = t
- }
- };
-
- if (!fn->tmps)
- fn->tmps = tmp;
- else
- for (struct tmp *t = fn->tmps; t ; t = t->next)
- if (!t->next)
- {
- t->next = tmp;
- break;
- }
-
- fprintf(stderr, "\tcreating temporary variable %s, type %s\n", s, tname);
- free(tname);
- return &tmp->e;
-
-failure:
- free(s);
- free(tname);
- return NULL;
-}