#!/bin/sh
set -e

CXX=${1:-g++}

AUTOPKGTEST_TMP=${AUTOPKGTEST_TMP:-$(mktemp -d)}

cd $AUTOPKGTEST_TMP

res=0
for header in /usr/include/c++/$($CXX --version | sed -rn '1s/.* ([0-9]+)\..*/\1/p')/*
do
	test -f "$header" || continue
	header=$(basename $header)
	flags=
	ignore_fail=
	case $header in
		coroutine)
			flags="-Xcompiler -fcoroutines"
			;;
	esac
	if [ "$ignore_fail" = "yes" ]; then
		echo "$header (may fail)"
	else
		echo "$header"
	fi
	rc=0
	echo "#include <$header>" | nvcc -ccbin $CXX -x cu $flags -o $header.o -c - || rc=$?
	if [ "$rc" != 0 ]; then
		if [ "$ignore_fail" = "yes" ]; then
			echo "Ignored failure: $header"
		else
			echo "FAIL: $header"
			res=$rc
		fi
	fi
done

exit $res
