aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/cc/sym.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cmd/cc/sym.c')
-rw-r--r--sys/cmd/cc/sym.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/sys/cmd/cc/sym.c b/sys/cmd/cc/sym.c
new file mode 100644
index 0000000..ef40bce
--- /dev/null
+++ b/sys/cmd/cc/sym.c
@@ -0,0 +1,32 @@
+#include "cc.h"
+
+#include <libn/macro/map.h>
+
+#define PTR_HASH(p) (uintptr)(p)
+#define PTR_EQUAL(p1, p2) ((uintptr)(p1) == (uintptr)(p2))
+
+#if 0
+struct SymTab
+{
+ MAP_STRUCT_BODY(string, Sym*);
+};
+
+Sym*
+getsym(SymTab *tab, string key)
+{
+ MAP_GET(tab, key, PTR_HASH, PTR_EQUAL, nil);
+}
+
+static
+int
+moresymtab(SymTab *tab, int n)
+{
+ MAP_GROW(tab, string, Sym*, n, PTR_HASH);
+}
+
+int
+putsym(SymTab *tab, Sym *sym, error *err)
+{
+ MAP_PUT(tab, sym->name, sym, PTR_HASH, PTR_EQUAL, moresymtab, err);
+}
+#endif