blob: b3dae6175a26f43a401ae3adf954e92f16063c73 [file]
#!/usr/bin/env bash
# Copyright 2024 Alejandro Colomar <alx@kernel.org>
# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
set -Eeuf;
out="$(mktemp)";
$CC $CFLAGS_ -o "$out" -x c - $LDLIBS_ 2>&1 <<__EOF__ \
| if ! grep -- 'incompatible-pointer-types' >/dev/null; then \
>&2 printf '%s\n' "$0:$LINENO: Expected: [incompatible-pointer-types]"; \
exit 1; \
else \
true; \
fi;
#include <a2i/a2i/a2i.h>
int
main(void)
{
char *end;
short n;
a2i(short, &n, "0", &end, 0, 0, 0);
}
__EOF__
$CC $CFLAGS_ -o "$out" -x c - $LDLIBS_ 2>&1 <<__EOF__ \
| if ! grep -- 'pointer-sign' >/dev/null; then \
>&2 printf '%s\n' "$0:$LINENO: Expected error: [pointer-sign]"; \
exit 1; \
else \
true; \
fi;
#include <stddef.h>
#include <a2i/a2i/a2i.h>
int
main(void)
{
unsigned char n;
a2i(signed char, &n, "0", NULL, 0, 0, 0);
}
__EOF__
$CC $CFLAGS_ -o "$out" -x c - $LDLIBS_ 2>&1 <<__EOF__ \
| if ! grep -- 'incompatible-pointer-types' >/dev/null; then \
>&2 printf '%s\n' "$0:$LINENO: Expected error: [incompatible-pointer-types]"; \
exit 1; \
else \
true; \
fi;
#include <stddef.h>
#include <a2i/a2i/a2i.h>
int
main(void)
{
unsigned long n;
a2i(unsigned int, &n, "0", NULL, 0, 0, 0);
}
__EOF__
$CC $CFLAGS_ -o "$out" -x c - $LDLIBS_ 2>&1 <<__EOF__ \
| if ! grep -- 'error:.*[Gg]eneric.* association' >/dev/null; then \
>&2 printf '%s\n' "$0:$LINENO: Expected error: [_Generic]"; \
exit 1; \
else \
true; \
fi;
#include <stddef.h>
#include <a2i/a2i/a2i.h>
int
main(void)
{
float n;
a2i(float, &n, "0", NULL, 0, 0, 0);
}
__EOF__