// file t0.c typedef struct { float a; float b; } foo; void t() { foo a = *(__ea foo*)0; // 0 is not problem here }
$ spu-gcc -Wall -O0 -c t0.c -S does not produce instruction that calls __cache_fetch. typedef struct { float a; } foo; struct with 1 member or just float/int type does produce this instruction. brsl $lr,__cache_fetch -- Summary: SPU __ea qualifier doesn't get along with some structure Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kojih at jp dot sony dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33778