aboutsummaryrefslogtreecommitdiff
path: root/test/Sema/array-constraint.c
diff options
context:
space:
mode:
authorSteve Naroff <snaroff@apple.com>2007-08-30 22:35:45 +0000
committerSteve Naroff <snaroff@apple.com>2007-08-30 22:35:45 +0000
commit42471f8bc6c1179a54941fac3c483ec1bd319436 (patch)
tree209f6116c7af627cac0c3e29a0069f22f3243831 /test/Sema/array-constraint.c
parent535bb20b6e252809bc17cc59b5d71b5e5e549e70 (diff)
Final phase of array cleanup (for now), removing a FIXME from yesterday.
Moved several array constraints checks from Sema::VerifyConstantArrayType() to Sema::GetTypeForDeclarator(). VerifyConstantArrayType() is now very simple, and could be removed eventually. Now, we get the following (correct) messages for BlockVarDecls:-) [dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang x.c -pedantic x.c:4:20: error: size of array has non-integer type 'float' int size_not_int[f]; ^ x.c:5:21: error: array size is negative int negative_size[1-2]; ^~~ x.c:6:17: warning: zero size arrays are an extension int zero_size[0]; ^ 3 diagnostics generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41624 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Sema/array-constraint.c')
-rw-r--r--test/Sema/array-constraint.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/Sema/array-constraint.c b/test/Sema/array-constraint.c
index 4d1c2f1600..1ca3cd7aec 100644
--- a/test/Sema/array-constraint.c
+++ b/test/Sema/array-constraint.c
@@ -31,3 +31,11 @@ typedef int (*pfunc)(void);
pfunc xx(int f[](void)) { // expected-error {{'f' declared as array of functions}}
return f;
}
+
+void check_size() {
+ float f;
+ int size_not_int[f]; // expected-error {{size of array has non-integer type 'float'}}
+ int negative_size[1-2]; // expected-error{{array size is negative}}
+ int zero_size[0]; // expected-warning{{zero size arrays are an extension}}
+}
+