mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-23 04:42:32 +00:00
Fix casting arrays to pointers
This commit is contained in:
parent
3196bcc851
commit
00f12263ca
2 changed files with 7 additions and 3 deletions
|
@ -2537,8 +2537,9 @@ cast_expr (type_t *type, expr_t *e)
|
|||
&& !(is_scalar (type) && is_scalar (e_type))) {
|
||||
return cast_error (e, e_type, type);
|
||||
}
|
||||
if (is_array (e_type))
|
||||
return address_expr (e, 0, 0);
|
||||
if (is_array (e_type)) {
|
||||
return address_expr (e, 0, type->t.fldptr.type);
|
||||
}
|
||||
if (is_constant (e) && is_scalar (type) && is_scalar (e_type)) {
|
||||
ex_value_t *val = 0;
|
||||
if (e->type == ex_symbol && e->e.symbol->sy_type == sy_const) {
|
||||
|
|
|
@ -7,14 +7,17 @@ typedef struct {
|
|||
int ofs[];
|
||||
} valstruct_t;
|
||||
|
||||
int foo[5] = {1, 2, 3, 4, 5};
|
||||
valstruct_t *vs;
|
||||
int dst;
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
vs = (valstruct_t *)foo;
|
||||
for (int i = 0; i < 2; i++) {
|
||||
dst = vs.ofs[i];
|
||||
}
|
||||
return 1;
|
||||
printf("dst = %d\n", dst);
|
||||
return dst != 4;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue