1 /* Define MALLOC_ALIGNMENT for malloc. Generic version. 2 Copyright (C) 2017-2022 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #ifndef _GENERIC_MALLOC_ALIGNMENT_H 20 #define _GENERIC_MALLOC_ALIGNMENT_H 21 22 /* MALLOC_ALIGNMENT is the minimum alignment for malloc'ed chunks. It 23 must be a power of two at least 2 * SIZE_SZ, even on machines for 24 which smaller alignments would suffice. It may be defined as larger 25 than this though. Note however that code and data structures are 26 optimized for the case of 8-byte alignment. */ 27 #define MALLOC_ALIGNMENT (2 * SIZE_SZ < __alignof__ (long double) \ 28 ? __alignof__ (long double) : 2 * SIZE_SZ) 29 30 31 #endif /* !defined(_GENERIC_MALLOC_ALIGNMENT_H) */ 32