parser: Remove the unused attribute alignment from struct declaration_specifiers_t.
[cparser] / lang_features.h
1 /*
2  * This file is part of cparser.
3  * Copyright (C) 2012 Matthias Braun <matze@braunis.de>
4  */
5 #ifndef LANG_FEATURES_H
6 #define LANG_FEATURES_H
7
8 #include <stdbool.h>
9
10 #define BITS_PER_BYTE    8
11
12 typedef enum lang_features_t {
13         _C89  = 1U << 0,
14         _C99  = 1U << 1,
15         _C11  = 1U << 2,
16         _CXX  = 1U << 3,
17         _GNUC = 1U << 4,
18         _MS   = 1U << 5,
19         _ALL  = 0xFF
20 } lang_features_t;
21
22 /** the current C mode/dialect */
23 extern unsigned int c_mode;
24
25 /**
26  * whether architecture shift instructions usually perform modulo bit_size
27  * on the shift amount, if yes this equals to the machine_size.
28  */
29 extern unsigned int architecture_modulo_shift;
30
31 /** byte-order: true = big-endian, false = little-endian */
32 extern bool byte_order_big_endian;
33
34 /** true for strict language checking. */
35 extern bool strict_mode;
36
37 /** a hack that adds a call to __main into the main function, necessary on
38  * mingw */
39 extern bool enable_main_collect2_hack;
40
41 extern bool freestanding;
42
43 #endif