From 002abd6de66451db160d58cbcb42090bb9356a7c Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Sun, 2 Nov 2008 12:46:40 +0000 Subject: Minor fix. * mfd/drivers.c (mark_type_asgn): Mark variable as referenced if it is assigned a value. git-svn-id: file:///svnroot/mailfromd/trunk@1719 7a8a7f39-df28-0410-adc6-e0d955640f24 --- ChangeLog | 5 +++++ mfd/drivers.c | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 76796c17..e3d9f538 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2008-11-02 Sergey Poznyakoff + Minor fix. + + * mfd/drivers.c (mark_type_asgn): Mark variable as referenced if + it is assigned a value. + Get rid of ml_header. Gacopyz takes care about the header formatting. diff --git a/mfd/drivers.c b/mfd/drivers.c index c3ed92b2..5ecaad07 100644 --- a/mfd/drivers.c +++ b/mfd/drivers.c @@ -1168,9 +1168,13 @@ print_type_asgn(NODE *node, int level) void mark_type_asgn(NODE *node) { - /* FIXME: That's not quite right. The node should be marked - only if var is referenced or volatile, but determining this - would probably require an extra pass. */ + /* FIXME: This is overly conservative. First of all, `referenced' + does not mean `used', so this can create useless assignments, + even if the variable in question is not referenced elsewhere: */ + node->v.asgn.var->flags |= VAR_REFERENCED; + /* Secondly, the node should be marked only if var is referenced + or volatile, but determining this would probably require an + extra pass. */ mark(node->v.asgn.node); } -- cgit v1.2.1