#include <stdlib.h>
#include <assert.h>
int main ( void )
{
long w;
int i;
char* p;
assert(sizeof(long) == sizeof(void*));
/* partial load, which --partial-loads-ok=yes should suppress */
p = calloc( sizeof(long)-1, 1 );
assert(p);
w = *(long*)p;
free(p);
/* partial but misaligned, cannot be suppressed */
p = calloc( sizeof(long), 1 );
assert(p);
p++;
w += *(long*)p;
p--;
free(p);
/* partial but not word sized, cannot be suppressed */
p = calloc( sizeof(short)-1, 1 );
assert(p);
w += (long)( *(short*)p );
free(p);
/* aligned, word sized, but completely invalid - cannot be suppressed */
p = calloc( sizeof(long), 1 );
assert(p);
free(p);
w += *(long*)p;
/* dump result in a way gcc can't understand */
for (i = 0; i < 64; i++)
w <<= 1;
return (int)w;
}