| // Part of the Crubit project, under the Apache License v2.0 with LLVM |
| // Exceptions. See /LICENSE for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| #[deny(unused_unsafe)] |
| fn main() { |
| // Can safely invoke functions that accept simple types or are marked safe. |
| example_lib::SafeSignatureWithoutAnnotation(); |
| example_lib::UnsafeSignatureButAnnotatedSafe(core::ptr::null_mut()); |
| example_lib::SafeBasedOnBoolean(); |
| |
| // `unsafe` is needed to invoke functions that accept raw pointers or are marked |
| // unsafe. |
| unsafe { |
| example_lib::UnsafeSignatureWithoutAnnotation(core::ptr::null_mut()); |
| example_lib::SafeSignatureButAnnotatedUnsafe(); |
| example_lib::UnsafeBasedOnBoolean(); |
| } |
| } |