| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This is a "No Compile Test" suite. |
| // http://dev.chromium.org/developers/testing/no-compile-tests |
| |
| #include "base/compiler_specific.h" |
| |
| namespace base { |
| |
| UNSAFE_BUFFER_USAGE int uses_pointer_as_array(int* i) { |
| return UNSAFE_BUFFERS(i[1]); |
| } |
| |
| void CallToUnsafeBufferFunctionDisallowed() { |
| int arr[] = {1, 2}; |
| #ifdef UNSAFE_BUFFERS_BUILD |
| uses_pointer_as_array(arr); // expected-error {{function introduces unsafe buffer manipulation}} |
| #else |
| uses_pointer_as_array(arr); // expected-no-diagnostics: No error when not enabled. |
| #endif |
| } |
| |
| } // namespace base |