diff options
Diffstat (limited to 'clang/test/SemaCXX/builtin-assume-dereferenceable.cpp')
| -rw-r--r-- | clang/test/SemaCXX/builtin-assume-dereferenceable.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/clang/test/SemaCXX/builtin-assume-dereferenceable.cpp b/clang/test/SemaCXX/builtin-assume-dereferenceable.cpp index b79b7c059567..2cbd7ac3507b 100644 --- a/clang/test/SemaCXX/builtin-assume-dereferenceable.cpp +++ b/clang/test/SemaCXX/builtin-assume-dereferenceable.cpp @@ -18,12 +18,12 @@ int test3(int *a) { } int test4(int *a, unsigned size) { - a = __builtin_assume_dereferenceable(a, size); // expected-error {{argument to '__builtin_assume_dereferenceable' must be a constant integer}} + __builtin_assume_dereferenceable(a, size); return a[0]; } int test5(int *a, unsigned long long size) { - a = __builtin_assume_dereferenceable(a, size); // expected-error {{argument to '__builtin_assume_dereferenceable' must be a constant integer}} + __builtin_assume_dereferenceable(a, size); return a[0]; } @@ -53,3 +53,8 @@ constexpr void *l = __builtin_assume_dereferenceable(p, 4); // expected-error {{ void *foo() { return l; } + +int test10(int *a) { + __builtin_assume_dereferenceable(a, a); // expected-error {{cannot initialize a parameter of type '__size_t' (aka 'unsigned long') with an lvalue of type 'int *'}} + return a[0]; +} |
