summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2012-06-14 20:59:26 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2012-06-14 20:59:26 -0400
commit9d647b6dacc3f5050b477f5dfacce6921cbe64d8 (patch)
tree8eefc00666147bebe0167590d849627fb35af0a5
parentfa985580edb43442934e82cd622cf17612a19cfa (diff)
Print labels
-rw-r--r--examples/badgoto.nl3
-rw-r--r--examples/retur.nl15
-rw-r--r--util.c2
3 files changed, 17 insertions, 3 deletions
diff --git a/examples/badgoto.nl b/examples/badgoto.nl
index 21adb13..669120f 100644
--- a/examples/badgoto.nl
+++ b/examples/badgoto.nl
@@ -7,6 +7,5 @@ func ()
func();
@out_of_func:
-
-
+goto middle_of_func;
diff --git a/examples/retur.nl b/examples/retur.nl
new file mode 100644
index 0000000..5143247
--- /dev/null
+++ b/examples/retur.nl
@@ -0,0 +1,15 @@
+func () -> label
+{
+ return print_100;
+
+@print_100:
+ print 100;
+ return done;
+}
+
+goto func ();
+
+print "shouldn't happen";
+
+@done:
+print "done";
diff --git a/util.c b/util.c
index 2959a8d..270f2a3 100644
--- a/util.c
+++ b/util.c
@@ -386,7 +386,7 @@ value_to_string (value_t *val, ast_type_spec_t *type)
break;
case AST_LABEL_TYPE:
- return g_strdup_printf ("%p\n", val->label_val.label);
+ return g_strdup_printf ("<label %p>\n", val->label_val.label);
break;
case AST_ARRAY_TYPE: