1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <inttypes.h>
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <pthread.h>
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdio.h>
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdlib.h>
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <string.h>
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownstatic void *thread_main(void *arg)
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  uintptr_t address = (uintptr_t)&arg;
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  printf("alignment = %" PRIuPTR "\n", address & 3U);
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  return NULL;
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main(int argc, char **argv)
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  pthread_t t;
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  int e;
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  if ((e = pthread_create(&t, NULL, thread_main, NULL)) != 0)
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    {
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      fprintf(stderr, "pthread_create: %s\n", strerror(e));
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      exit(1);
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    }
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  if ((e = pthread_join(t, NULL)) != 0)
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    {
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      fprintf(stderr, "pthread_join: %s\n", strerror(e));
30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      exit(1);
31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    }
32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  exit(0);
34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
35