In the code segment below, DATA_PACK is set in the struct my_data.
This fails with an Internal Error.
typedef struct{
unsigned char A;
unsigned char B;
unsigned char C;
} my_data;
void foo(my_data a_in[50], my_data b_out[50])
{
int i;
for(i=0; i < 50; i++){
b_out[i].A = (a_in[i].A >> 1) + 10;
b_out[i].B = (a_in[i].B >> 2);
b_out[i].C = (a_in[i].C >> 3) + 100;
}
}
typedef struct{
unsigned char A;
unsigned char B[320];
unsigned char C;
} my_data;
my_data foo(my_data a_in)
{
int i;
my_data b_out;
b_out.A = (a_in.A >> 1) + 10;
b_out.C = (a_in.C >> 3) + 100;
for(i = 0; i <= 319; i++){
b_out.B[i] = (a_in.B[i] + a_in.A + a_in.C);
}
return b_out;
}
int DoArrayTests() {
my_data input;
my_data output = foo(input);
return output.A;
}