aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linearize.h
diff options
authorChristopher Li <sparse@chrisli.org>2004-04-22 23:01:46 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-07 21:01:40 -0700
commit7195dddfaafa39d61ce710733f0267095f2fb4d0 (patch)
treec0987a011f01e3bab3c8688b231f52d6f566cc28 /linearize.h
parentb6f2b825158a67fd8efc89fe76f79b91b00746b6 (diff)
downloadsparse-dev-7195dddfaafa39d61ce710733f0267095f2fb4d0.tar.gz
[PATCH] Fix "return" target handling
This fixes the linearization of "return", to use the proper symbol target that the front end has already set up for it: - linearize_statement(), case "STMT_COMPOUND" needs to create a label at the _end_ (aftre doing the linearization of all the other stuff) if "stmt->ret" is non-NULL. - STMT_RETURN needs to move the return expression to the return variable, and goto the return label.
Diffstat (limited to 'linearize.h')
-rw-r--r--linearize.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/linearize.h b/linearize.h
index 8c7ca63b..8c6a800f 100644
--- a/linearize.h
+++ b/linearize.h
@@ -13,7 +13,9 @@ struct pseudo {
typedef struct pseudo *pseudo_t;
-#define VOID NULL
+extern struct pseudo void_pseudo;
+
+#define VOID (&void_pseudo)
struct multijmp {
struct basic_block *target;