arphaman added a comment.
Thanks for working on this!
This patch fixes a couple of our internal warnings that shouldn't be presented.
I included a code sample that reproduces our warnings, would you mind adding
some code to the test case that's similar to the sample below?
typedef struct {
uint32_t msgh_bits;
uint32_t msgh_size;
int32_t msgh_voucher_port;
int32_t msgh_id;
} S10Header;
typedef struct {
uint32_t t;
uint64_t m;
uint32_t p;
union {
struct {
uint32_t a;
double z;
} __attribute__ ((aligned (8), packed)) a;
struct {
uint32_t b;
double z;
uint32_t a;
} __attribute__ ((aligned (8), packed)) b;
};
} __attribute__ ((aligned (8), packed)) S10Data;
typedef struct {
S10Header hdr;
uint32_t size;
uint8_t count;
S10Data data[] __attribute__ ((aligned (8)));
} __attribute__ ((aligned (8), packed)) S10;
void foo(S10Header *hdr);
void bar(S10 *s) {
foo(&s->hdr); // No warning expected.
}
Btw, slightly off-topic, but I noticed that the declaration
`DiagnoseMisalignedMembers` in the header has a doc comment that violates the
80 chars rule. I committed a fix in r283228.
https://reviews.llvm.org/D23657
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits