#!/bin/sh
set -eu

macro=$1
headers='
assert.h
complex.h
ctype.h
errno.h
fenv.h
float.h
inttypes.h
iso646.h
limits.h
locale.h
math.h
setjmp.h
signal.h
stdalign.h
stdarg.h
stdatomic.h
stdbool.h
stddef.h
stdint.h
stdio.h
stdlib.h
stdnoreturn.h
string.h
tgmath.h
threads.h
time.h
uchar.h
wchar.h
wctype.h
'

for header in $headers; do
	defined=$(
		echo "$macro" \
		| cc -E -x c -include "$header" - \
		2> /dev/null \
		| tail -n 1
	)
	[ $? -ne 0 -o "$defined" = "$macro" ] && continue
	echo "#include <${header}>"
	echo "$defined"
done