conformtest: Use correct keyword set for underlying C standard
Joseph S. Myers
joseph@codesourcery.com
Sun Apr 29 10:33:00 GMT 2012
conformtest.pl allows all C99 keywords to be used in headers, but
properly it should only allow keywords from the relevant C standard
version. I propose this patch to fix this. Tested x86_64.
2012-04-29 Joseph Myers <joseph@codesourcery.com>
* conform/conformtest.pl (@keywords): Only include C99 keywords
for standards based on C99 or C11.
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 4704deb..018057f 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -64,12 +64,15 @@ die "unknown standard \"$standard\"" if ($CFLAGS{$standard} eq "");
# $mustprepend{'wordexp.h'} = "#include <stddef.h>\n";
# }
-# These are the ISO C99 keywords.
+# These are the ISO C90 keywords.
@keywords = ('auto', 'break', 'case', 'char', 'const', 'continue', 'default',
'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto',
- 'if', 'inline', 'int', 'long', 'register', 'restrict', 'return',
+ 'if', 'int', 'long', 'register', 'return',
'short', 'signed', 'sizeof', 'static', 'struct', 'switch',
'typedef', 'union', 'unsigned', 'void', 'volatile', 'while');
+if ($CFLAGS{$standard} =~ /-std=(c99|c1x)/) {
+ push (@keywords, 'inline', 'restrict');
+}
# Make a hash table from this information.
while ($#keywords >= 0) {
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list