AAX SDK 2.8.0
Avid Audio Extensions Development Kit
Loading...
Searching...
No Matches
AAX_Push8ByteStructAlignment.h
Go to the documentation of this file.
1/*================================================================================================*/
2/*
3 *
4 * Copyright 2014-2015, 2018, 2023-2024 Avid Technology, Inc.
5 * All rights reserved.
6 *
7 * This file is part of the Avid AAX SDK.
8 *
9 * The AAX SDK is subject to commercial or open-source licensing.
10 *
11 * By using the AAX SDK, you agree to the terms of both the Avid AAX SDK License
12 * Agreement and Avid Privacy Policy.
13 *
14 * AAX SDK License: https://developer.avid.com/aax
15 * Privacy Policy: https://www.avid.com/legal/privacy-policy-statement
16 *
17 * Or: You may also use this code under the terms of the GPL v3 (see
18 * www.gnu.org/licenses).
19 *
20 * THE AAX SDK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
21 * EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
22 * DISCLAIMED.
23 *
24 */
25
74/*================================================================================================*/
75
76#ifdef _TMS320C6X
77// TI is OK - 8 byte alignment is the only allowed alignment
78#elif defined (_MSC_VER)
79#pragma warning( disable : 4103 ) // used #pragma pack to change alignment
80#pragma pack(push, 8)
81#elif defined (__GNUC__)
82// Uncomment this warning suppression if you really want to apply packing to a virtual data
83// structure, but note that there is no guarantee of cross-platform compatibility for such
84// a structure. For more information, see the AAX_ALIGN_FILE_ALG macro documentation
85// #ifdef __clang__
86// #pragma clang diagnostic push
87// #pragma clang diagnostic ignored "-Wno-incompatible-ms-struct"
88// #endif
89#pragma ms_struct on
90// #ifdef __clang__
91// #pragma clang diagnostic pop
92// #endif
93#pragma pack(push, 8)
94#elif defined (__MWERKS__)
95#pragma options align=mac68k
96#else
97#error "You need to supply a pragma here to set structure alignment to 8 bytes"
98#endif
99
100// Nesting of struct alignment headers is not allowed
101#ifdef __AAX_CUSTOM_STRUCT_ALIGN_IS_SET__
102#error "Nested AAX struct alignment directives"
103#else
104#define __AAX_CUSTOM_STRUCT_ALIGN_IS_SET__
105#endif