diff options
| author | 2026-04-18 19:47:33 +0200 | |
|---|---|---|
| committer | 2026-04-18 19:47:33 +0200 | |
| commit | e243a262720a19224a4ae4a99466808711fb0acd (patch) | |
| tree | e6693130705647c16337de5615a169ea5478ae77 /src/c.h | |
| parent | 2e1e513d0cfd3686abb1634824a1503f93f413de (diff) | |
frontend: GNU statement expressions
Diffstat (limited to 'src/c.h')
| -rw-r--r-- | src/c.h | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -14,6 +14,7 @@ enum exprkind { EEQU, ENEQ, ELTH, EGTH, ELTE, EGTE, ESET, ESETADD, ESETSUB, ESETMUL, ESETDIV, ESETREM, ESETAND, ESETIOR, ESETXOR, ESETSHL, ESETSHR, ESEQ, + EIRVALUE, }; #define isunop(t) in_range(t, EPLUS, EPOSTDEC) #define isbinop(t) in_range(t, EADD, ESEQ) @@ -55,6 +56,7 @@ struct Expr { bool func : 1, local : 1; } ssym; /* ESSYMREF (static symbol addr + off) */ Init *init; /* EINIT */ + struct { uint bits; } irref; /* EIRVALUE */ }; }; @@ -81,6 +83,7 @@ typedef struct { struct Block *breakto, *loopcont; struct SwitchStmt *switchstmt; struct Label *labels; + struct Function *fn; } CComp; enum storageclass { |