1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef PARTITION_ALLOC_PARTITION_ALLOC_BASE_AUGMENTATIONS_COMPILER_SPECIFIC_H_
6 #define PARTITION_ALLOC_PARTITION_ALLOC_BASE_AUGMENTATIONS_COMPILER_SPECIFIC_H_
7 
8 // Extensions for PA's copy of `//base/compiler_specific.h`.
9 
10 #include "partition_alloc/partition_alloc_base/compiler_specific.h"
11 
12 // PA_ATTRIBUTE_RETURNS_NONNULL
13 //
14 // Tells the compiler that a function never returns a null pointer.
15 // Sourced from Abseil's `attributes.h`.
16 #if PA_HAS_ATTRIBUTE(returns_nonnull)
17 #define PA_ATTRIBUTE_RETURNS_NONNULL __attribute__((returns_nonnull))
18 #else
19 #define PA_ATTRIBUTE_RETURNS_NONNULL
20 #endif
21 
22 #endif  // PARTITION_ALLOC_PARTITION_ALLOC_BASE_AUGMENTATIONS_COMPILER_SPECIFIC_H_
23