mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
conformtest: Unify "constant" and "typed-constant".
This commit is contained in:
parent
d22956c99b
commit
f2d922feb2
@ -1,5 +1,10 @@
|
||||
2012-05-01 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* conform/conformtest.pl: Handle braced types on "constant" lines
|
||||
instead of handling "typed-constant".
|
||||
* conform/data/signal.h-data: Use "constant" instead of
|
||||
"typed-constant".
|
||||
|
||||
* conform/conformtest.pl: Handle "optional-" at start of lines in
|
||||
one place rather than duplicating several cases. Handle each
|
||||
format of "macro" line with initial "optional-".
|
||||
|
@ -385,10 +385,11 @@ while ($#headers >= 0) {
|
||||
"Member \"$member\" does not have the correct type.",
|
||||
$res, 0);
|
||||
}
|
||||
} elsif (/^constant *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
|
||||
} elsif (/^constant *([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
|
||||
my($const) = $1;
|
||||
my($op) = $2;
|
||||
my($value) = $3;
|
||||
my($type) = $2;
|
||||
my($op) = $3;
|
||||
my($value) = $4;
|
||||
my($res) = $missing;
|
||||
|
||||
# Remember that this name is allowed.
|
||||
@ -407,6 +408,20 @@ while ($#headers >= 0) {
|
||||
: "Constant \"$const\" not available."), $res,
|
||||
$optional);
|
||||
|
||||
if (defined ($type) && ($res == 0 || !$optional)) {
|
||||
# Test the types of the members.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
print TESTFILE "__typeof__ (($type) 0) a;\n";
|
||||
print TESTFILE "extern __typeof__ ($const) a;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
compiletest ($fnamebase, "Testing for type of constant $const",
|
||||
"Constant \"$const\" does not have the correct type.",
|
||||
$res, 0);
|
||||
}
|
||||
|
||||
if (defined ($op) && ($res == 0 || !$optional)) {
|
||||
# Generate a program to test for the value of this constant.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
@ -416,48 +431,6 @@ while ($#headers >= 0) {
|
||||
print TESTFILE "int main (void) { return !($const $op $value); }\n";
|
||||
close (TESTFILE);
|
||||
|
||||
$res = runtest ($fnamebase, "Testing for value of constant $const",
|
||||
"Constant \"$const\" has not the right value.", $res);
|
||||
}
|
||||
} elsif (/^typed-constant *([a-zA-Z0-9_]*) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_-]*)?/) {
|
||||
my($const) = $1;
|
||||
my($type) = "$3$4";
|
||||
my($value) = $5;
|
||||
my($res) = $missing;
|
||||
|
||||
# Remember that this name is allowed.
|
||||
push @allow, $const;
|
||||
|
||||
# Generate a program to test for the availability of this constant.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
print TESTFILE "__typeof__ ($const) a = $const;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
$res = compiletest ($fnamebase, "Testing for constant $const",
|
||||
"Constant \"$const\" not available.", $res, 0);
|
||||
|
||||
# Test the types of the members.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
print TESTFILE "__typeof__ (($type) 0) a;\n";
|
||||
print TESTFILE "extern __typeof__ ($const) a;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
compiletest ($fnamebase, "Testing for type of constant $const",
|
||||
"Constant \"$const\" does not have the correct type.",
|
||||
$res, 0);
|
||||
|
||||
if ($value ne "") {
|
||||
# Generate a program to test for the value of this constant.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
print TESTFILE "int main (void) { return $const != $value; }\n";
|
||||
close (TESTFILE);
|
||||
|
||||
$res = runtest ($fnamebase, "Testing for value of constant $const",
|
||||
"Constant \"$const\" has not the right value.", $res);
|
||||
}
|
||||
@ -833,9 +806,7 @@ while ($#headers >= 0) {
|
||||
|
||||
if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
|
||||
push @allow, $7;
|
||||
} elsif (/^constant *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
|
||||
push @allow, $1;
|
||||
} elsif (/^typed-constant *([a-zA-Z0-9_]*) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*)?/) {
|
||||
} elsif (/^constant *([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
|
||||
push @allow, $1;
|
||||
} elsif (/^(type|tag) *({([^}]*)|([a-zA-Z0-9_]*))/) {
|
||||
my($type) = "$3$4";
|
||||
|
@ -1,9 +1,9 @@
|
||||
typed-constant SIG_DFL {void(*)(int)}
|
||||
typed-constant SIG_ERR {void(*)(int)}
|
||||
constant SIG_DFL {void(*)(int)}
|
||||
constant SIG_ERR {void(*)(int)}
|
||||
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
|
||||
typed-constant SIG_HOLD {void(*)(int)}
|
||||
constant SIG_HOLD {void(*)(int)}
|
||||
#endif
|
||||
typed-constant SIG_IGN {void(*)(int)}
|
||||
constant SIG_IGN {void(*)(int)}
|
||||
|
||||
type sig_atomic_t
|
||||
#if !defined ISO && !defined ISO99 && !defined ISO11
|
||||
|
Loading…
Reference in New Issue
Block a user