// RUN: %clang_cc1 -fsyntax-only -verify %s | |
// expected-no-diagnostics | |
struct B { | |
int x, y, z, w; | |
} b; | |
struct __attribute__((packed)) A { | |
struct B b; | |
} a; | |
typedef __typeof__(sizeof(int)) size_t; | |
extern "C" { | |
void *memcpy(void *dest, const void *src, size_t n); | |
int memcmp(const void *s1, const void *s2, size_t n); | |
void *memmove(void *dest, const void *src, size_t n); | |
void *memset(void *s, int c, size_t n); | |
} | |
int x; | |
void foo() { | |
memcpy(&a.b, &b, sizeof(b)); | |
memmove(&a.b, &b, sizeof(b)); | |
memset(&a.b, 0, sizeof(b)); | |
x = memcmp(&a.b, &b, sizeof(b)); | |
} |