// 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

Reply via email to