summaryrefslogtreecommitdiff
path: root/clang/test/SemaCXX/builtin-assume-dereferenceable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCXX/builtin-assume-dereferenceable.cpp')
-rw-r--r--clang/test/SemaCXX/builtin-assume-dereferenceable.cpp9
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];
+}