This library contains code that extends and simplifies different operations
for C language based programs.
Revisión | a1050481a449fcdfdbe68e36671914bce7fd7c2e (tree) |
---|---|
Tiempo | 2022-10-05 09:48:13 |
Autor | Sergey Gusarov <laborer2008@gmai...> |
Commiter | Sergey Gusarov |
attributes: More compatibility with bcc
@@ -96,10 +96,25 @@ | ||
96 | 96 | # define CT_GCC_UNUSED |
97 | 97 | |
98 | 98 | # define CT_FORCEINLINE __inline |
99 | -# define CT_ALIGNED(x) // TODO? alignof(x) | |
99 | + | |
100 | +# if defined (CT_LANG_C11) | |
101 | +# define CT_ALIGNED(x) _Alignas(x) | |
102 | +# elif defined (CT_LANG_CXX11) | |
103 | +# define CT_ALIGNED(x) alignas(x) | |
104 | +# elif defined (__cplusplus) | |
105 | +# define CT_ALIGNED(x) alignof(x) | |
106 | +# else | |
107 | +# define CT_ALIGNED(x) | |
108 | +# endif | |
100 | 109 | |
101 | 110 | # ifdef __clang__ |
102 | -# define CT_NORETURN | |
111 | +# if defined (CT_LANG_C11) | |
112 | +# define CT_NORETURN _Noreturn | |
113 | +# elif defined (CT_LANG_CXX11) | |
114 | +# define CT_NORETURN noreturn | |
115 | +# else | |
116 | +# define CT_NORETURN | |
117 | +# endif | |
103 | 118 | # else |
104 | 119 | # define CT_NORETURN __declspec(noreturn) |
105 | 120 | # endif |
@@ -117,6 +117,12 @@ | ||
117 | 117 | # define CT_END_EXTERNAL_HEADERS |
118 | 118 | # endif |
119 | 119 | |
120 | +#elif defined (CT_COMPL_BCC) | |
121 | + | |
122 | +// TODO: clang-based variant is also possible here | |
123 | +# define CT_BEGIN_EXTERNAL_HEADERS | |
124 | +# define CT_END_EXTERNAL_HEADERS | |
125 | + | |
120 | 126 | #elif defined (CT_COMPL_CLANG) |
121 | 127 | |
122 | 128 | # ifdef CT_CLANG_3_5_1_ABOVE_WARNING_LIST |