From e7297581fcebbd5242e8349fa9537c4ccb1a9eba Mon Sep 17 00:00:00 2001 From: Sam Watkins Date: Tue, 16 Jun 2009 04:26:44 +0800 Subject: [PATCH] pass constness from structs to members --- tccgen.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tccgen.c b/tccgen.c index 942c503c..fcfaa7ee 100644 --- a/tccgen.c +++ b/tccgen.c @@ -3266,9 +3266,11 @@ static void unary(void) inc(1, tok); next(); } else if (tok == '.' || tok == TOK_ARROW) { + int qualifiers; /* field */ if (tok == TOK_ARROW) indir(); + qualifiers = vtop->type.t & (VT_CONSTANT | VT_VOLATILE); test_lvalue(); gaddrof(); next(); @@ -3290,6 +3292,7 @@ static void unary(void) gen_op('+'); /* change type to field type, and set to lvalue */ vtop->type = s->type; + vtop->type.t |= qualifiers; /* an array is never an lvalue */ if (!(vtop->type.t & VT_ARRAY)) { vtop->r |= lvalue_type(vtop->type.t); -- 2.11.4.GIT