aboutsummaryrefslogtreecommitdiff
path: root/mfd/drivers.c
diff options
context:
space:
mode:
Diffstat (limited to 'mfd/drivers.c')
-rw-r--r--mfd/drivers.c10
1 files changed, 7 insertions, 3 deletions
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);
}

Return to:

Send suggestions and report system problems to the System administrator.