Adhere in the expression walker that __builtin_prefetch has two optional parameters.
authorChristoph Mallon <christoph.mallon@gmx.de>
Fri, 12 Dec 2008 09:53:32 +0000 (09:53 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Fri, 12 Dec 2008 09:53:32 +0000 (09:53 +0000)
[r24557]

walk_statements.c

index 8a4cbc1..a13a70f 100644 (file)
@@ -49,11 +49,16 @@ static void walk_expression(expression_t const *const expr,
                walk_expression(expr->conditional.false_expression, callback, env);
                return;
 
-       case EXPR_BUILTIN_PREFETCH:
-               walk_expression(expr->builtin_prefetch.adr,      callback, env);
-               walk_expression(expr->builtin_prefetch.rw,       callback, env);
-               walk_expression(expr->builtin_prefetch.locality, callback, env);
+       case EXPR_BUILTIN_PREFETCH: {
+               builtin_prefetch_expression_t const *const pf = &expr->builtin_prefetch;
+               walk_expression(pf->adr, callback, env);
+               if (pf->rw != NULL) {
+                       walk_expression(pf->rw, callback, env);
+                       if (pf->locality != NULL)
+                               walk_expression(pf->locality, callback, env);
+               }
                return;
+       }
 
        case EXPR_BUILTIN_CONSTANT_P:
                walk_expression(expr->builtin_constant.value, callback, env);