diff options
| author | Christopher Li <sparse@chrisli.org> | 2004-04-22 23:01:46 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-07 21:01:40 -0700 |
| commit | 7195dddfaafa39d61ce710733f0267095f2fb4d0 (patch) | |
| tree | c0987a011f01e3bab3c8688b231f52d6f566cc28 /linearize.h | |
| parent | b6f2b825158a67fd8efc89fe76f79b91b00746b6 (diff) | |
| download | sparse-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.h | 4 |
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; |
