AAX SDK  2.4.1
Avid Audio Extensions Development Kit
AAX_Push8ByteStructAlignment.h
Go to the documentation of this file.
1 /*================================================================================================*/
2 /*
3  *
4  * Copyright 2014-2015, 2018 by Avid Technology, Inc.
5  * All rights reserved.
6  *
7  * CONFIDENTIAL: This document contains confidential information. Do not
8  * read or examine this document unless you are an Avid Technology employee
9  * or have signed a non-disclosure agreement with Avid Technology which protects
10  * the confidentiality of this document. DO NOT DISCLOSE ANY INFORMATION
11  * CONTAINED IN THIS DOCUMENT TO ANY THIRD-PARTY WITHOUT THE PRIOR WRITTEN CONSENT
12  * OF Avid Technology, INC.
13  *
14  */
15 
64 /*================================================================================================*/
65 
66 #ifdef _TMS320C6X
67 // TI is OK - 8 byte alignment is the only allowed alignment
68 #elif defined (_MSC_VER)
69 #pragma warning( disable : 4103 ) // used #pragma pack to change alignment
70 #pragma pack(push, 8)
71 #elif defined (__GNUC__)
72 // Uncomment this warning suppression if you really want to apply packing to a virtual data
73 // structure, but note that there is no guarantee of cross-platform compatibility for such
74 // a structure. For more information, see the AAX_ALIGN_FILE_ALG macro documentation
75 // #ifdef __clang__
76 // #pragma clang diagnostic push
77 // #pragma clang diagnostic ignored "-Wno-incompatible-ms-struct"
78 // #endif
79 #pragma ms_struct on
80 // #ifdef __clang__
81 // #pragma clang diagnostic pop
82 // #endif
83 #pragma pack(push, 8)
84 #elif defined (__MWERKS__)
85 #pragma options align=mac68k
86 #else
87 #error "You need to supply a pragma here to set structure alignment to 8 bytes"
88 #endif
89 
90 // Nesting of struct alignment headers is not allowed
91 #ifdef __AAX_CUSTOM_STRUCT_ALIGN_IS_SET__
92 #error "Nested AAX struct alignment directives"
93 #else
94 #define __AAX_CUSTOM_STRUCT_ALIGN_IS_SET__
95 #endif