summaryrefslogtreecommitdiff
path: root/tests/t0029-predefined-abi-names.sh
blob: 3ed158c753e47ee42600faadaecc00517e930db1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/sh
set -eu
base="${TMPDIR-/tmp}/mcpu-cpp-predef-names-$$"
mkdir -p "$base"
trap 'rm -rf "$base"' EXIT HUP INT TERM

"$MCPU_CPP" --no-config -dMP < /dev/null > "$base/macros"

grep '^#define __MCPU_HOST_MACHINE_SIZE_TYPE__ uint[0-9][0-9]*$' "$base/macros" >/dev/null
grep '^#define __MCPU_HOST_MACHINE_SIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null
grep '^#define __MCPU_HOST_MACHINE_SIZEOF_SIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null
grep '^#define __MCPU_HOST_MACHINE_SIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null
grep '^#define __MCPU_HOST_MACHINE_SSIZE_TYPE__ int[0-9][0-9]*$' "$base/macros" >/dev/null
grep '^#define __MCPU_HOST_MACHINE_SSIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null
grep '^#define __MCPU_HOST_MACHINE_SIZEOF_SSIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null
grep '^#define __MCPU_HOST_MACHINE_SSIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null
grep '^#define __SIZEOF_PTRDIFF__ 8$' "$base/macros" >/dev/null
grep '^#define __BYTE_ORDER__ __MCPU_BYTE_ORDER__$' "$base/macros" >/dev/null
grep '^#define __MCPU_BYTE_ORDER__ __ORDER_\(LITTLE\|BIG\)_ENDIAN__$' "$base/macros" >/dev/null
grep '^#define __MCPU_WORD_ORDER__ __ORDER_\(LITTLE\|BIG\)_ENDIAN__$' "$base/macros" >/dev/null
grep '^#define __MCPU_INT_MAX_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null
grep '^#define __MCPU_REAL_MAX_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null
grep '^#define __MCPU_COMPLEX_MAX_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null

grep '^#define __SIZEOF_CHAR8__ 1$' "$base/macros" >/dev/null
grep '^#define __SIZEOF_CHAR16__ 2$' "$base/macros" >/dev/null

real_limit=`sed -n 's/^#define __MCPU_REAL_IO_LIMIT__ \([0-9][0-9]*\)$/\1/p' "$base/macros"`
test -n "$real_limit"
grep "^#define __SIZEOF_REAL${real_limit}_EXP__ [1-9][0-9]*$" "$base/macros" >/dev/null
grep "^#define __REAL${real_limit}_MAX_STRLEN__ [1-9][0-9]*$" "$base/macros" >/dev/null

for name in \
  __SIZE_TYPE__ __SIZE_WIDTH__ __SIZE_MAX__ __SIZEOF_SIZE_T__ \
  __MCPU_SIZEOF_SSIZE_T__ __SIZEOF_CHAR8_T__ __SIZEOF_CHAR16_T__ \
  __SIZEOF_PTRDIFF_T__ __FLOAT_WORD_ORDER__; do
  if grep "^#define ${name}\\>" "$base/macros" >/dev/null; then exit 1; fi
done