-# Copyright © 2020 Nick Bowler
+# Copyright © 2020, 2023 Nick Bowler
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
[explain int x$], [declare x$ as int])
SIMPLE_BADDECL([Reject long long long],
[explain long long long x], [declare x as long long long])
+SIMPLE_BADDECL([Reject long long double],
+ [explain long long double x], [declare x as long long double])
SIMPLE_BADDECL([Reject inline on object declarations],
[explain inline int x], [declare x as inline int])
SIMPLE_BADDECL([Reject void declarations],
[explain void x], [declare x as void])
SIMPLE_BADDECL([Reject complex integers],
- [explain int _Complex x], [declare x as int _Complex])
+ [explain int _Complex x], [declare x as int _Complex],
+ [explain short _Complex x], [declare x as short _Complex],
+ [explain long _Complex x], [declare x as long _Complex],
+ [explain char _Complex x], [declare x as char _Complex])
+SIMPLE_BADDECL([Reject imaginary integers],
+ [explain int _Imaginary x], [declare x as int _Imaginary],
+ [explain short _Imaginary x], [declare x as short _Imaginary],
+ [explain long _Imaginary x], [declare x as long _Imaginary],
+ [explain char _Imaginary x], [declare x as char _Imaginary])
+SIMPLE_BADDECL([Reject signed floats],
+ [explain signed float x], [declare x as signed float],
+ [explain signed double x], [declare x as signed double])
+SIMPLE_BADDECL([Reject unsigned floats],
+ [explain unsigned float x], [declare x as unsigned float],
+ [explain unsigned double x], [declare x as unsigned double])
dnl C99§6.7.3p2: Types other than pointer types derived from object or
dnl incomplete types shall not be restrict-qualified.
[declare f as function (...) returning void])
SIMPLE_BADDECL([Reject identifier lists with extra parentheses],
- [explain int f((x))])
-
-SIMPLE_BADDECL([Reject parameter types with extra parentheses],
- [explain int ((int))])
+ [explain int f((x))],
+ [explain int f(())])
dnl TODO: Find C&V which actually prohibits these "obviously wrong"
dnl declarations.
SIMPLE_BADDECL([Error recovery on multiple object declaration],
[explain int inline x, y])
+
+SIMPLE_BADDECL([Reject hyphens in identifiers],
+ [explain int ac-dc],
+ [explain int variable-length])