37 lines
549 B
C
37 lines
549 B
C
#include <stddef.h>
|
|
#ifdef DEBUG
|
|
#include <stdio.h>
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" void abort (void);
|
|
#else
|
|
extern void abort (void);
|
|
#endif
|
|
|
|
int
|
|
check_int (int *i, int align)
|
|
{
|
|
*i = 20;
|
|
if ((((ptrdiff_t) i) & (align - 1)) != 0)
|
|
{
|
|
#ifdef DEBUG
|
|
printf ("\nUnalign address (%d): %p!\n", align, i);
|
|
#endif
|
|
abort ();
|
|
}
|
|
return *i;
|
|
}
|
|
|
|
void
|
|
check (void *p, int align)
|
|
{
|
|
if ((((ptrdiff_t) p) & (align - 1)) != 0)
|
|
{
|
|
#ifdef DEBUG
|
|
printf ("\nUnalign address (%d): %p!\n", align, p);
|
|
#endif
|
|
abort ();
|
|
}
|
|
}
|