------- Comment #8 from hjl dot tools at gmail dot com  2009-04-29 00:42 -------
This code:

---
void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n);

struct timeval {
    long tv_sec;
};

typedef struct timeval packed   __attribute__((aligned(1)));

struct outdata {
    long align;
    char seq;
    packed tv;
};

void send_probe(struct outdata *outdata, struct timeval *tp)
__attribute__((noin
line));
void send_probe(struct outdata *outdata, struct timeval *tp)
{
    memcpy(&outdata->tv, tp, sizeof outdata->tv);
}

struct timeval t;
struct outdata outdata;

int main()
{
  send_probe(&outdata, &t);
  return 0;
}
---

works fine. It seems that we mishandled __attribute__((packed)).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39954

Reply via email to