aboutsummaryrefslogtreecommitdiff
path: root/tcc.c
diff options
context:
space:
mode:
Diffstat (limited to 'tcc.c')
-rw-r--r--tcc.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/tcc.c b/tcc.c
index f223f68..97d4445 100644
--- a/tcc.c
+++ b/tcc.c
@@ -7599,6 +7599,24 @@ static void unary(void)
vpushi(res);
}
break;
+ case TOK_builtin_frame_address:
+ {
+ CType type;
+ next();
+ skip('(');
+ if (tok != TOK_CINT) {
+ error("__builtin_frame_address only takes integers");
+ }
+ if (tokc.i != 0) {
+ error("TCC only supports __builtin_frame_address(0)");
+ }
+ next();
+ skip(')');
+ type.t = VT_VOID;
+ mk_pointer(&type);
+ vset(&type, VT_LOCAL, 0);
+ }
+ break;
case TOK_INC:
case TOK_DEC:
t = tok;