]> git.ipfire.org Git - thirdparty/glibc.git/blob - conform/check-header-lists.sh
regex: fix storage-exhaustion error
[thirdparty/glibc.git] / conform / check-header-lists.sh
1 #!/bin/sh
2 # Check the set of headers with conformtest expectations for a given standard.
3 # Copyright (C) 2014-2018 Free Software Foundation, Inc.
4 # This file is part of the GNU C Library.
5
6 # The GNU C Library is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU Lesser General Public
8 # License as published by the Free Software Foundation; either
9 # version 2.1 of the License, or (at your option) any later version.
10
11 # The GNU C Library is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 # Lesser General Public License for more details.
15
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with the GNU C Library; if not, see
18 # <http://www.gnu.org/licenses/>.
19
20 set -e
21
22 std=$1
23 CC=$2
24 expected_list=$3
25 all_data_files=$4
26
27 new_list=
28
29 for f in $all_data_files; do
30 h=${f#data/}
31 h=${h%-data}
32 exp=$($CC -D$std -x c -E $f | sed -e '/^#/d' -e '/^[ ]*$/d')
33 if [ "$exp" ]; then
34 new_list="$new_list $h"
35 fi
36 done
37
38 echo "Headers with expectations for $std: $new_list"
39 echo "Expected list: $expected_list"
40
41 rc=0
42
43 for h in $expected_list; do
44 case " $new_list " in
45 (*" $h "*)
46 ;;
47 (*)
48 echo "Missing expectations for $h."
49 rc=1
50 ;;
51 esac
52 done
53
54 for h in $new_list; do
55 case " $expected_list " in
56 (*" $h "*)
57 ;;
58 (*)
59 echo "Spurious expectations for $h."
60 rc=1
61 ;;
62 esac
63 done
64
65 exit $rc