print_string("__builtin_va_start(");
print_assignment_expression(expression->ap);
print_string(", ");
- print_string(expression->parameter->base.base.symbol->string);
+ print_assignment_expression(expression->parameter);
print_char(')');
}
struct va_start_expression_t {
expression_base_t base;
expression_t *ap;
- variable_t *parameter;
+ expression_t *parameter;
};
struct va_arg_expression_t {
rem_anchor_token(',');
expect(',');
expression_t *const param = parse_assignment_expression();
+ expression->va_starte.parameter = param;
rem_anchor_token(')');
expect(')');
entity->kind != ENTITY_PARAMETER) {
errorf(¶m->base.source_position,
"second argument of 'va_start' must be last parameter of the current function");
- } else {
- expression->va_starte.parameter = &entity->variable;
}
} else {
expression = create_error_expression();