aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libmach/demangler.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/libmach/demangler.c b/src/libmach/demangler.c
new file mode 100644
index 00000000..a2a9b963
--- /dev/null
+++ b/src/libmach/demangler.c
@@ -0,0 +1,27 @@
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#include <mach.h>
+
+void
+main(void)
+{
+ Biobuf b, bout;
+ char *p, *s;
+ char buf[100000];
+
+ Binit(&b, 0, OREAD);
+ Binit(&bout, 1, OWRITE);
+
+ while((p = Brdline(&b, '\n')) != nil){
+ p[Blinelen(&b)-1] = 0;
+ werrstr("no error");
+ s = demanglegcc2(p, buf);
+ if(s == p)
+ Bprint(&bout, "# %s (%r)\n", p);
+ else
+ Bprint(&bout, "%s\t%s\n", p, s);
+ }
+ Bflush(&bout);
+ exits(0);
+}